diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebKit/chromium/tests/DateTimeFormatTest.cpp | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit/chromium/tests/DateTimeFormatTest.cpp')
-rw-r--r-- | Source/WebKit/chromium/tests/DateTimeFormatTest.cpp | 337 |
1 files changed, 0 insertions, 337 deletions
diff --git a/Source/WebKit/chromium/tests/DateTimeFormatTest.cpp b/Source/WebKit/chromium/tests/DateTimeFormatTest.cpp deleted file mode 100644 index a2c5e9f0a..000000000 --- a/Source/WebKit/chromium/tests/DateTimeFormatTest.cpp +++ /dev/null @@ -1,337 +0,0 @@ -/* - * Copyright (C) 2012 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "config.h" -#include "DateTimeFormat.h" - -#if ENABLE(INPUT_MULTIPLE_FIELDS_UI) -#include <gtest/gtest.h> -#include <wtf/text/CString.h> -#include <wtf/text/StringBuilder.h> - -using namespace WebCore; - -class DateTimeFormatTest : public ::testing::Test { -public: - typedef DateTimeFormat::FieldType FieldType; - - struct Token { - String string; - int count; - FieldType fieldType; - - Token(FieldType fieldType, int count = 1) - : count(count) - , fieldType(fieldType) - { - ASSERT(fieldType != DateTimeFormat::FieldTypeLiteral); - } - - Token(const String& string) - : string(string) - , count(0) - , fieldType(DateTimeFormat::FieldTypeLiteral) - { - } - - bool operator==(const Token& other) const - { - return fieldType == other.fieldType && count == other.count && string == other.string; - } - - String toString() const - { - switch (fieldType) { - case DateTimeFormat::FieldTypeInvalid: - return "*invalid*"; - case DateTimeFormat::FieldTypeLiteral: { - StringBuilder builder; - builder.append('"'); - builder.append(string); - builder.append('"'); - return builder.toString(); - } - default: - return String::format("Token(%d, %d)", fieldType, count); - } - } - }; - - class Tokens { - public: - Tokens() { } - - explicit Tokens(const Vector<Token> tokens) - : m_tokens(tokens) - { - } - - explicit Tokens(const String& string) - { - m_tokens.append(Token(string)); - } - - explicit Tokens(Token token1) - { - m_tokens.append(token1); - } - - Tokens(Token token1, Token token2) - { - m_tokens.append(token1); - m_tokens.append(token2); - } - - Tokens(Token token1, Token token2, Token token3) - { - m_tokens.append(token1); - m_tokens.append(token2); - m_tokens.append(token3); - } - - Tokens(Token token1, Token token2, Token token3, Token token4) - { - m_tokens.append(token1); - m_tokens.append(token2); - m_tokens.append(token3); - m_tokens.append(token4); - } - - Tokens(Token token1, Token token2, Token token3, Token token4, Token token5) - { - m_tokens.append(token1); - m_tokens.append(token2); - m_tokens.append(token3); - m_tokens.append(token4); - m_tokens.append(token5); - } - - Tokens(Token token1, Token token2, Token token3, Token token4, Token token5, Token token6) - { - m_tokens.append(token1); - m_tokens.append(token2); - m_tokens.append(token3); - m_tokens.append(token4); - m_tokens.append(token5); - m_tokens.append(token6); - } - - bool operator==(const Tokens& other) const - { - return m_tokens == other.m_tokens; - } - - String toString() const - { - StringBuilder builder; - builder.append("Tokens("); - for (unsigned index = 0; index < m_tokens.size(); ++index) { - if (index) - builder.append(","); - builder.append(m_tokens[index].toString()); - } - builder.append(")"); - return builder.toString(); - } - - private: - Vector<Token> m_tokens; - }; - -protected: - Tokens parse(const String& formatString) - { - TokenHandler handler; - if (!DateTimeFormat::parse(formatString, handler)) - return Tokens(Token("*failed*")); - return handler.tokens(); - } - - FieldType single(const char ch) - { - char formatString[2]; - formatString[0] = ch; - formatString[1] = 0; - TokenHandler handler; - if (!DateTimeFormat::parse(formatString, handler)) - return DateTimeFormat::FieldTypeInvalid; - return handler.fieldType(0); - } - -private: - class TokenHandler : public DateTimeFormat::TokenHandler { - public: - virtual ~TokenHandler() { } - - FieldType fieldType(int index) const - { - return index >=0 && index < static_cast<int>(m_tokens.size()) ? m_tokens[index].fieldType : DateTimeFormat::FieldTypeInvalid; - } - - Tokens tokens() const { return Tokens(m_tokens); } - - private: - virtual void visitField(FieldType fieldType, int count) OVERRIDE - { - m_tokens.append(Token(fieldType, count)); - } - - virtual void visitLiteral(const String& string) OVERRIDE - { - m_tokens.append(Token(string)); - } - - Vector<Token> m_tokens; - }; -}; - -std::ostream& operator<<(std::ostream& os, const DateTimeFormatTest::Tokens& tokens) -{ - return os << tokens.toString().ascii().data(); -} - -TEST_F(DateTimeFormatTest, CommonPattern) -{ - EXPECT_EQ(Tokens(), parse("")); - - EXPECT_EQ( - Tokens( - Token(DateTimeFormat::FieldTypeYear, 4), Token("-"), - Token(DateTimeFormat::FieldTypeMonth, 2), Token("-"), - Token(DateTimeFormat::FieldTypeDayOfMonth, 2)), - parse("yyyy-MM-dd")); - - EXPECT_EQ( - Tokens( - Token(DateTimeFormat::FieldTypeHour24, 2), Token(":"), - Token(DateTimeFormat::FieldTypeMinute, 2), Token(":"), - Token(DateTimeFormat::FieldTypeSecond, 2)), - parse("kk:mm:ss")); - - EXPECT_EQ( - Tokens( - Token(DateTimeFormat::FieldTypeHour12), Token(":"), - Token(DateTimeFormat::FieldTypeMinute), Token(" "), - Token(DateTimeFormat::FieldTypePeriod)), - parse("h:m a")); - - EXPECT_EQ( - Tokens( - Token(DateTimeFormat::FieldTypeYear), Token("Nen "), - Token(DateTimeFormat::FieldTypeMonth), Token("Getsu "), - Token(DateTimeFormat::FieldTypeDayOfMonth), Token("Nichi")), - parse("y'Nen' M'Getsu' d'Nichi'")); -} - -TEST_F(DateTimeFormatTest, MissingClosingQuote) -{ - EXPECT_EQ(Tokens("*failed*"), parse("'foo")); - EXPECT_EQ(Tokens("*failed*"), parse("fo'o")); - EXPECT_EQ(Tokens("*failed*"), parse("foo'")); -} - -TEST_F(DateTimeFormatTest, Quote) -{ - EXPECT_EQ(Tokens("FooBar"), parse("'FooBar'")); - EXPECT_EQ(Tokens("'"), parse("''")); - EXPECT_EQ(Tokens("'-'"), parse("''-''")); - EXPECT_EQ(Tokens("Foo'Bar"), parse("'Foo''Bar'")); - EXPECT_EQ( - Tokens(Token(DateTimeFormat::FieldTypeEra), Token("'s")), - parse("G'''s'")); - EXPECT_EQ( - Tokens(Token(DateTimeFormat::FieldTypeEra), Token("'"), Token(DateTimeFormat::FieldTypeSecond)), - parse("G''s")); -} - -TEST_F(DateTimeFormatTest, SingleLowerCaseCharacter) -{ - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('b')); - EXPECT_EQ(DateTimeFormat::FieldTypeLocalDayOfWeekStandAlon, single('c')); - EXPECT_EQ(DateTimeFormat::FieldTypeDayOfMonth, single('d')); - EXPECT_EQ(DateTimeFormat::FieldTypeLocalDayOfWeek, single('e')); - EXPECT_EQ(DateTimeFormat::FieldTypeModifiedJulianDay, single('g')); - EXPECT_EQ(DateTimeFormat::FieldTypeHour12, single('h')); - EXPECT_EQ(DateTimeFormat::FieldTypeHour24, single('k')); - EXPECT_EQ(DateTimeFormat::FieldTypeMinute, single('m')); - EXPECT_EQ(DateTimeFormat::FieldTypeQuaterStandAlone, single('q')); - EXPECT_EQ(DateTimeFormat::FieldTypeSecond, single('s')); - EXPECT_EQ(DateTimeFormat::FieldTypeExtendedYear, single('u')); - EXPECT_EQ(DateTimeFormat::FieldTypeNonLocationZone, single('v')); - EXPECT_EQ(DateTimeFormat::FieldTypeWeekOfMonth, single('W')); - EXPECT_EQ(DateTimeFormat::FieldTypeYear, single('y')); - EXPECT_EQ(DateTimeFormat::FieldTypeZone, single('z')); -} - -TEST_F(DateTimeFormatTest, SingleLowerCaseInvalid) -{ - EXPECT_EQ(DateTimeFormat::FieldTypePeriod, single('a')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('f')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('i')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('j')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('l')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('n')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('o')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('p')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('r')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('t')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('x')); -} - -TEST_F(DateTimeFormatTest, SingleUpperCaseCharacter) -{ - EXPECT_EQ(DateTimeFormat::FieldTypeMillisecondsInDay, single('A')); - EXPECT_EQ(DateTimeFormat::FieldTypeDayOfYear, single('D')); - EXPECT_EQ(DateTimeFormat::FieldTypeDayOfWeek, single('E')); - EXPECT_EQ(DateTimeFormat::FieldTypeDayOfWeekInMonth, single('F')); - EXPECT_EQ(DateTimeFormat::FieldTypeEra, single('G')); - EXPECT_EQ(DateTimeFormat::FieldTypeHour23, single('H')); - EXPECT_EQ(DateTimeFormat::FieldTypeHour11, single('K')); - EXPECT_EQ(DateTimeFormat::FieldTypeMonthStandAlone, single('L')); - EXPECT_EQ(DateTimeFormat::FieldTypeMonth, single('M')); - EXPECT_EQ(DateTimeFormat::FieldTypeQuater, single('Q')); - EXPECT_EQ(DateTimeFormat::FieldTypeFractionalSecond, single('S')); - EXPECT_EQ(DateTimeFormat::FieldTypeWeekOfYear, single('w')); - EXPECT_EQ(DateTimeFormat::FieldTypeYearOfWeekOfYear, single('Y')); - EXPECT_EQ(DateTimeFormat::FieldTypeRFC822Zone, single('Z')); -} - -TEST_F(DateTimeFormatTest, SingleUpperCaseInvalid) -{ - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('B')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('C')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('I')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('J')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('N')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('O')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('P')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('R')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('T')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('U')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('V')); - EXPECT_EQ(DateTimeFormat::FieldTypeInvalid, single('X')); -} - -#endif |