diff options
author | Kenny Root <kroot@google.com> | 2010-06-01 10:34:29 -0700 |
---|---|---|
committer | Kenny Root <kroot@google.com> | 2010-07-07 09:57:50 -0700 |
commit | 7cee34a051eb0087322c8b965e498f88b1aa52d3 (patch) | |
tree | 08bb1d6c8850bb688b4eddf7e1a24888719b5e52 /libs/utils/tests | |
parent | 2e6aff8e19ce8292a36fe211f8051dccf1fb9670 (diff) | |
download | frameworks_base-7cee34a051eb0087322c8b965e498f88b1aa52d3.zip frameworks_base-7cee34a051eb0087322c8b965e498f88b1aa52d3.tar.gz frameworks_base-7cee34a051eb0087322c8b965e498f88b1aa52d3.tar.bz2 |
Add OBB file helper class
ObbFile is a binary blob that will be used in packaging large files
with smaller APKs.
Change-Id: Ib1594346cfa2f49113de6565af77c24efbd89d63
Diffstat (limited to 'libs/utils/tests')
-rw-r--r-- | libs/utils/tests/Android.mk | 1 | ||||
-rw-r--r-- | libs/utils/tests/ObbFile_test.cpp | 75 |
2 files changed, 76 insertions, 0 deletions
diff --git a/libs/utils/tests/Android.mk b/libs/utils/tests/Android.mk index 92ebfd7c..f1b8cd5 100644 --- a/libs/utils/tests/Android.mk +++ b/libs/utils/tests/Android.mk @@ -3,6 +3,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) test_src_files := \ + ObbFile_test.cpp \ PollLoop_test.cpp shared_libraries := \ diff --git a/libs/utils/tests/ObbFile_test.cpp b/libs/utils/tests/ObbFile_test.cpp new file mode 100644 index 0000000..05aaf08 --- /dev/null +++ b/libs/utils/tests/ObbFile_test.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "ObbFile_test" +#include <utils/Log.h> +#include <utils/ObbFile.h> +#include <utils/RefBase.h> +#include <utils/String8.h> + +#include <gtest/gtest.h> + +namespace android { + +#define TEST_FILENAME "/test.obb" + +class ObbFileTest : public testing::Test { +protected: + sp<ObbFile> mObbFile; + char* mExternalStorage; + char* mFileName; + + virtual void SetUp() { + mObbFile = new ObbFile(); + mExternalStorage = getenv("EXTERNAL_STORAGE"); + + const int totalLen = strlen(mExternalStorage) + strlen(TEST_FILENAME) + 1; + mFileName = new char[totalLen]; + snprintf(mFileName, totalLen, "%s%s", mExternalStorage, TEST_FILENAME); + } + + virtual void TearDown() { + } +}; + +TEST_F(ObbFileTest, ReadFailure) { + EXPECT_FALSE(mObbFile->readFrom(-1)) + << "No failure on invalid file descriptor"; +} + +TEST_F(ObbFileTest, WriteThenRead) { + const char* packageName = "com.example.obbfile"; + const int32_t versionNum = 1; + + mObbFile->setPackageName(String8(packageName)); + mObbFile->setVersion(versionNum); + + EXPECT_TRUE(mObbFile->writeTo(mFileName)) + << "couldn't write to fake .obb file"; + + mObbFile = new ObbFile(); + + EXPECT_TRUE(mObbFile->readFrom(mFileName)) + << "couldn't read from fake .obb file"; + + EXPECT_EQ(versionNum, mObbFile->getVersion()) + << "version didn't come out the same as it went in"; + const char* currentPackageName = mObbFile->getPackageName().string(); + EXPECT_STREQ(packageName, currentPackageName) + << "package name didn't come out the same as it went in"; +} + +} |