diff options
Diffstat (limited to 'chromium/base/version_unittest.cc')
-rw-r--r-- | chromium/base/version_unittest.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/chromium/base/version_unittest.cc b/chromium/base/version_unittest.cc index 12b806399d0..4d04083801e 100644 --- a/chromium/base/version_unittest.cc +++ b/chromium/base/version_unittest.cc @@ -196,4 +196,28 @@ TEST(VersionTest, IsValidWildcardString) { } } +TEST(VersionTest, LeadingZeros) { + { + // Leading zeros in the first component are not allowed. + base::Version v("01.1"); + EXPECT_FALSE(v.IsValid()); + } + + { + // Leading zeros in subsequent components are allowed (and this behavior is + // now important for compatibility with existing modules, like extensions), + // but are ignored because the value is parsed as an integer... + base::Version v1("1.01"); + EXPECT_TRUE(v1.IsValid()); + // ...and as a result, v1.01 == v1.1. + EXPECT_EQ("1.1", v1.GetString()); + base::Version v2("1.1"); + EXPECT_EQ(v1, v2); + } + + // Similarly, since leading zeros are ignored, v1.02 > v1.1 (because + // v1.02 is translated to 1.2). + EXPECT_GT(base::Version("1.02"), base::Version("1.1")); +} + } // namespace |