summaryrefslogtreecommitdiff
path: root/tools/aapt2/cmd/Util_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aapt2/cmd/Util_test.cpp')
-rw-r--r--tools/aapt2/cmd/Util_test.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/tools/aapt2/cmd/Util_test.cpp b/tools/aapt2/cmd/Util_test.cpp
index 0c527f6a90dc..b9fb5b2868a7 100644
--- a/tools/aapt2/cmd/Util_test.cpp
+++ b/tools/aapt2/cmd/Util_test.cpp
@@ -18,6 +18,7 @@
#include "AppInfo.h"
#include "split/TableSplitter.h"
+#include "test/Builders.h"
#include "test/Test.h"
namespace aapt {
@@ -36,4 +37,51 @@ TEST(UtilTest, SplitNamesAreSanitized) {
EXPECT_EQ(root->FindAttribute("", "targetConfig")->value, "b+sr+Latn,en-rUS-land");
}
+TEST (UtilTest, LongVersionCodeDefined) {
+ auto doc = test::BuildXmlDom(R"(
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.aapt.test" android:versionCode="0x1" android:versionCodeMajor="0x1">
+ </manifest>)");
+ SetLongVersionCode(doc->root.get(), 42);
+
+ auto version_code = doc->root->FindAttribute(xml::kSchemaAndroid, "versionCode");
+ ASSERT_NE(version_code, nullptr);
+ EXPECT_EQ(version_code->value, "0x0000002a");
+
+ ASSERT_NE(version_code->compiled_value, nullptr);
+ auto compiled_version_code = ValueCast<BinaryPrimitive>(version_code->compiled_value.get());
+ ASSERT_NE(compiled_version_code, nullptr);
+ EXPECT_EQ(compiled_version_code->value.data, 42U);
+
+ auto version_code_major = doc->root->FindAttribute(xml::kSchemaAndroid, "versionCodeMajor");
+ EXPECT_EQ(version_code_major, nullptr);
+}
+
+TEST (UtilTest, LongVersionCodeUndefined) {
+ auto doc = test::BuildXmlDom(R"(
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.aapt.test">
+ </manifest>)");
+ SetLongVersionCode(doc->root.get(), 420000000000);
+
+ auto version_code = doc->root->FindAttribute(xml::kSchemaAndroid, "versionCode");
+ ASSERT_NE(version_code, nullptr);
+ EXPECT_EQ(version_code->value, "0xc9f36800");
+
+ ASSERT_NE(version_code->compiled_value, nullptr);
+ auto compiled_version_code = ValueCast<BinaryPrimitive>(version_code->compiled_value.get());
+ ASSERT_NE(compiled_version_code, nullptr);
+ EXPECT_EQ(compiled_version_code->value.data, 0xc9f36800);
+
+ auto version_code_major = doc->root->FindAttribute(xml::kSchemaAndroid, "versionCodeMajor");
+ ASSERT_NE(version_code_major, nullptr);
+ EXPECT_EQ(version_code_major->value, "0x00000061");
+
+ ASSERT_NE(version_code_major->compiled_value, nullptr);
+ auto compiled_version_code_major = ValueCast<BinaryPrimitive>(
+ version_code_major->compiled_value.get());
+ ASSERT_NE(compiled_version_code_major, nullptr);
+ EXPECT_EQ(compiled_version_code_major->value.data, 0x61);
+}
+
} // namespace aapt