1163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross/*
2163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * Copyright (C) 2011 The Android Open Source Project
3163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross *
4163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * Licensed under the Apache License, Version 2.0 (the "License");
5163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * you may not use this file except in compliance with the License.
6163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * You may obtain a copy of the License at
7163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross *
8163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross *      http://www.apache.org/licenses/LICENSE-2.0
9163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross *
10163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * Unless required by applicable law or agreed to in writing, software
11163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * distributed under the License is distributed on an "AS IS" BASIS,
12163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * See the License for the specific language governing permissions and
14163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross * limitations under the License.
15163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross */
16163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
17163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross#define LOG_TAG "ZipFileRO_test"
18163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross#include <utils/Log.h>
19163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross#include <utils/ZipFileRO.h>
20163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
21163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross#include <gtest/gtest.h>
22163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
23163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross#include <fcntl.h>
24163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross#include <string.h>
25163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
26163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Crossnamespace android {
27163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
28163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Crossclass ZipFileROTest : public testing::Test {
29163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Crossprotected:
30163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    virtual void SetUp() {
31163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    }
32163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
33163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    virtual void TearDown() {
34163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    }
35163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross};
36163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
37163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin CrossTEST_F(ZipFileROTest, ZipTimeConvertSuccess) {
38163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    struct tm t;
39163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
40163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    // 2011-06-29 14:40:40
41163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    long when = 0x3EDD7514;
42163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
43163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    ZipFileRO::zipTimeToTimespec(when, &t);
44163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
45163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    EXPECT_EQ(2011, t.tm_year + 1900)
46163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross            << "Year was improperly converted.";
47163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
48163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    EXPECT_EQ(6, t.tm_mon)
49163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross            << "Month was improperly converted.";
50163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
51163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    EXPECT_EQ(29, t.tm_mday)
52163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross            << "Day was improperly converted.";
53163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
54163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    EXPECT_EQ(14, t.tm_hour)
55163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross            << "Hour was improperly converted.";
56163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
57163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    EXPECT_EQ(40, t.tm_min)
58163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross            << "Minute was improperly converted.";
59163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
60163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross    EXPECT_EQ(40, t.tm_sec)
61163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross            << "Second was improperly converted.";
62163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross}
63163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross
64163d5a9fa742e6a39f058fb9ed726fc31f4ecb28Colin Cross}
65