summaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 19:32:18 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 19:32:18 -0800
commit146de36083f6ce8b7e8a1f974d3990594a36bfec (patch)
tree26291db8f35326f89276b7f51dda5b5b4e78f070 /tests/src
parent2cb8df4a54d65554c34faa79d8b2a46a86ff7b52 (diff)
downloadandroid_packages_apps_Calendar-146de36083f6ce8b7e8a1f974d3990594a36bfec.tar.gz
android_packages_apps_Calendar-146de36083f6ce8b7e8a1f974d3990594a36bfec.tar.bz2
android_packages_apps_Calendar-146de36083f6ce8b7e8a1f974d3990594a36bfec.zip
auto import from //depot/cupcake/@135843
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/com/android/calendar/CalendarLaunchPerformance.java53
-rw-r--r--tests/src/com/android/calendar/CalendarTests.java39
-rw-r--r--tests/src/com/android/calendar/FormatDateRangeTest.java202
-rw-r--r--tests/src/com/android/calendar/WeekNumberTest.java233
4 files changed, 527 insertions, 0 deletions
diff --git a/tests/src/com/android/calendar/CalendarLaunchPerformance.java b/tests/src/com/android/calendar/CalendarLaunchPerformance.java
new file mode 100644
index 00000000..975f6aff
--- /dev/null
+++ b/tests/src/com/android/calendar/CalendarLaunchPerformance.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2007 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.
+ */
+
+package com.android.calendar.tests;
+
+import android.app.Activity;
+import android.test.LaunchPerformanceBase;
+import android.os.Bundle;
+
+import java.util.Map;
+
+/**
+ * Instrumentation class for Browser launch performance testing.
+ */
+public class CalendarLaunchPerformance extends LaunchPerformanceBase {
+
+ public static final String LOG_TAG = "CalendarLaunchPerformance";
+
+ public CalendarLaunchPerformance() {
+ super();
+ }
+
+ @Override
+ public void onCreate(Bundle arguments) {
+ super.onCreate(arguments);
+
+ mIntent.setClassName(getTargetContext(), "com.android.calendar.LaunchActivity");
+ start();
+ }
+
+ /**
+ * Calls LaunchApp and finish.
+ */
+ @Override
+ public void onStart() {
+ super.onStart();
+ LaunchApp();
+ finish(Activity.RESULT_OK, mResults);
+ }
+}
diff --git a/tests/src/com/android/calendar/CalendarTests.java b/tests/src/com/android/calendar/CalendarTests.java
new file mode 100644
index 00000000..222a64a8
--- /dev/null
+++ b/tests/src/com/android/calendar/CalendarTests.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2007 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.
+ */
+
+package com.android.calendar;
+
+import android.test.TestBrowserActivity;
+import junit.framework.TestSuite;
+
+
+/**
+ * Unit tests for com.android.calendar.
+ */
+public class CalendarTests extends TestBrowserActivity {
+
+ @Override
+ public final TestSuite getTopTestSuite() {
+ return suite();
+ }
+
+ public static TestSuite suite() {
+ TestSuite suite = new TestSuite(CalendarTests.class.getName());
+ suite.addTestSuite(FormatDateRangeTest.class);
+ suite.addTestSuite(WeekNumberTest.class);
+ return suite;
+ }
+}
diff --git a/tests/src/com/android/calendar/FormatDateRangeTest.java b/tests/src/com/android/calendar/FormatDateRangeTest.java
new file mode 100644
index 00000000..6f0d775d
--- /dev/null
+++ b/tests/src/com/android/calendar/FormatDateRangeTest.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2007 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.
+ */
+
+package com.android.calendar;
+
+import android.content.res.Resources;
+import android.text.format.DateUtils;
+import android.text.format.Time;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.util.Log;
+
+import java.util.Calendar;
+
+/**
+ * Unit tests for {@link android.text.format.DateUtils#formatDateRange}.
+ */
+public class FormatDateRangeTest extends AndroidTestCase {
+
+ private class DateTest {
+ public Time date1;
+ public Time date2;
+ public int flags;
+ public String expectedOutput;
+
+ public DateTest(int year1, int month1, int day1, int hour1, int minute1,
+ int year2, int month2, int day2, int hour2, int minute2,
+ int flags, String output) {
+ if ((flags & DateUtils.FORMAT_UTC) != 0) {
+ date1 = new Time(Time.TIMEZONE_UTC);
+ date2 = new Time(Time.TIMEZONE_UTC);
+ } else {
+ date1 = new Time();
+ date2 = new Time();
+ }
+
+ // If the year is zero, then set it to the current year.
+ if (year1 == 0 && year2 == 0) {
+ date1.set(System.currentTimeMillis());
+ year1 = year2 = date1.year;
+ }
+
+ date1.set(0, minute1, hour1, day1, month1, year1);
+ date1.normalize(true /* ignore isDst */);
+
+ date2.set(0, minute2, hour2, day2, month2, year2);
+ date2.normalize(true /* ignore isDst */);
+
+ this.flags = flags;
+ expectedOutput = output;
+ }
+
+ // Single point in time. (not a range)
+ public DateTest(int year1, int month1, int day1, int hour1, int minute1,
+ int flags, String output) {
+ this(year1, month1, day1, hour1, minute1,
+ year1, month1, day1, hour1, minute1,
+ flags, output);
+ }
+ }
+
+ private Resources mResources;
+
+ DateTest[] tests = {
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 9, 11, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "8am \u2013 11am"),
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 9, 11, 0,
+ DateUtils.FORMAT_SHOW_TIME, "8:00am \u2013 11:00am"),
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 9, 17, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_24HOUR, "08:00 \u2013 17:00"),
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 9, 12, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "8am \u2013 noon"),
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 9, 12, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_NO_NOON | DateUtils.FORMAT_ABBREV_ALL,
+ "8am \u2013 12pm"),
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 9, 12, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_CAP_NOON | DateUtils.FORMAT_ABBREV_ALL,
+ "8am \u2013 Noon"),
+ new DateTest(0, 10, 9, 10, 30, 0, 10, 9, 13, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "10:30am \u2013 1pm"),
+ new DateTest(0, 10, 9, 13, 0, 0, 10, 9, 14, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "1pm \u2013 2pm"),
+ new DateTest(0, 10, 9, 0, 0, 0, 10, 9, 14, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "12am \u2013 2pm"),
+ new DateTest(0, 10, 9, 20, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "8pm \u2013 midnight"),
+ new DateTest(0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "12am"),
+ new DateTest(0, 10, 9, 20, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_24HOUR | DateUtils.FORMAT_ABBREV_ALL,
+ "20:00 \u2013 00:00"),
+ new DateTest(0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_24HOUR | DateUtils.FORMAT_ABBREV_ALL,
+ "00:00"),
+ new DateTest(0, 10, 9, 20, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL, "Nov 9"),
+ new DateTest(0, 10, 10, 0, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL, "Nov 10"),
+ new DateTest(0, 10, 9, 20, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_24HOUR | DateUtils.FORMAT_ABBREV_ALL,
+ "Nov 9"),
+ new DateTest(0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_24HOUR | DateUtils.FORMAT_ABBREV_ALL,
+ "Nov 10"),
+ new DateTest(0, 10, 9, 20, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_NO_MIDNIGHT | DateUtils.FORMAT_ABBREV_ALL,
+ "8pm \u2013 12am"),
+ new DateTest(0, 10, 9, 20, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_CAP_MIDNIGHT | DateUtils.FORMAT_ABBREV_ALL,
+ "8pm \u2013 Midnight"),
+ new DateTest(0, 10, 9, 0, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL, "12am \u2013 midnight"),
+ new DateTest(0, 10, 9, 0, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_24HOUR | DateUtils.FORMAT_ABBREV_ALL,
+ "00:00 \u2013 00:00"),
+ new DateTest(0, 10, 9, 0, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL, "Nov 9"),
+ new DateTest(0, 10, 9, 0, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_ABBREV_ALL, "Nov 9"),
+ new DateTest(0, 10, 9, 0, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_UTC, "November 9"),
+ new DateTest(0, 10, 8, 0, 0, 0, 10, 10, 0, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_ABBREV_ALL, "Nov 8 \u2013 9"),
+ new DateTest(0, 10, 9, 0, 0, 0, 10, 11, 0, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_ABBREV_ALL, "Nov 9 \u2013 10"),
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 11, 17, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_ABBREV_ALL, "Nov 9 \u2013 11"),
+ new DateTest(0, 9, 29, 8, 0, 0, 10, 3, 17, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_ABBREV_ALL, "Oct 29 \u2013 Nov 3"),
+ new DateTest(2007, 11, 29, 8, 0, 2008, 0, 2, 17, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_ABBREV_ALL, "Dec 29, 2007 \u2013 Jan 2, 2008"),
+ new DateTest(2007, 11, 29, 0, 0, 2008, 0, 2, 0, 0,
+ DateUtils.FORMAT_UTC | DateUtils.FORMAT_ABBREV_ALL, "Dec 29, 2007 \u2013 Jan 1, 2008"),
+ new DateTest(2007, 11, 29, 8, 0, 2008, 0, 2, 17, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL,
+ "Dec 29, 2007, 8am \u2013 Jan 2, 2008, 5pm"),
+ new DateTest(0, 10, 9, 8, 0, 0, 10, 11, 17, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL,
+ "Nov 9, 8am \u2013 Nov 11, 5pm"),
+ new DateTest(2007, 10, 9, 8, 0, 2007, 10, 11, 17, 0,
+ DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_ABBREV_ALL,
+ "Fri, Nov 9, 2007 \u2013 Sun, Nov 11, 2007"),
+ new DateTest(2007, 10, 9, 8, 0, 2007, 10, 11, 17, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_ABBREV_ALL,
+ "Fri, Nov 9, 2007, 8am \u2013 Sun, Nov 11, 2007, 5pm"),
+ new DateTest(2007, 11, 3, 13, 0, 2007, 11, 3, 14, 0,
+ DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR,
+ "1:00pm \u2013 2:00pm, December 3, 2007"),
+ // Tests that FORMAT_SHOW_YEAR takes precedence over FORMAT_NO_YEAR:
+ new DateTest(2007, 11, 3, 13, 0, 2007, 11, 3, 13, 0,
+ DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_NO_YEAR,
+ "December 3, 2007"),
+ // Tests that year isn't shown by default with no year flags when time is the current year:
+ new DateTest(
+ Calendar.getInstance().get(Calendar.YEAR), 0, 3, 13, 0,
+ DateUtils.FORMAT_SHOW_DATE,
+ "January 3"),
+ // Tests that the year is shown by default with no year flags when time isn't the current year:
+ new DateTest(
+ Calendar.getInstance().get(Calendar.YEAR) - 1, 0, 3, 13, 0,
+ DateUtils.FORMAT_SHOW_DATE,
+ "January 3, 2008"),
+ };
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ mResources = mContext.getResources();
+ }
+
+ @MediumTest
+ public void testAll() throws Exception {
+ int len = tests.length;
+ for (int index = 0; index < len; index++) {
+ DateTest dateTest = tests[index];
+ long startMillis = dateTest.date1.toMillis(false /* use isDst */);
+ long endMillis = dateTest.date2.toMillis(false /* use isDst */);
+ int flags = dateTest.flags;
+ String output = DateUtils.formatDateRange(mContext, startMillis, endMillis, flags);
+ if (!dateTest.expectedOutput.equals(output)) {
+ Log.i("FormatDateRangeTest", "index " + index
+ + " expected: " + dateTest.expectedOutput
+ + " actual: " + output);
+ }
+ assertEquals(dateTest.expectedOutput, output);
+ }
+ }
+}
diff --git a/tests/src/com/android/calendar/WeekNumberTest.java b/tests/src/com/android/calendar/WeekNumberTest.java
new file mode 100644
index 00000000..6b3774b7
--- /dev/null
+++ b/tests/src/com/android/calendar/WeekNumberTest.java
@@ -0,0 +1,233 @@
+/*
+ * Copyright (C) 2007 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.
+ */
+
+package com.android.calendar;
+
+import android.content.res.Resources;
+import android.text.format.DateUtils;
+import android.text.format.Time;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Log;
+
+
+/**
+ * Unit tests for {@link android.text.format.Time#getWeekNumber}.
+ */
+public class WeekNumberTest extends AndroidTestCase {
+
+ private class DateAndWeekNumber {
+ public Time date;
+ public Time allDayDate;
+ public int expectedWeekNumber;
+
+ public DateAndWeekNumber(int year, int month, int day, int expectedWeekNumber) {
+ date = new Time();
+ allDayDate = new Time(Time.TIMEZONE_UTC);
+
+ date.set(0, 0, 0, day, month, year);
+ date.normalize(true /* ignore isDst */);
+
+ allDayDate.set(day, month, year);
+ allDayDate.normalize(true /* ignore isDst */);
+
+ this.expectedWeekNumber = expectedWeekNumber;
+ }
+ }
+
+ DateAndWeekNumber[] tests = {
+ new DateAndWeekNumber(1998, 11, 28, 53),
+ new DateAndWeekNumber(1998, 11, 29, 53),
+ new DateAndWeekNumber(1998, 11, 30, 53),
+ new DateAndWeekNumber(1998, 11, 31, 53),
+ new DateAndWeekNumber(1999, 0, 1, 53),
+ new DateAndWeekNumber(1999, 0, 2, 53),
+ new DateAndWeekNumber(1999, 0, 3, 53),
+ new DateAndWeekNumber(1999, 0, 4, 1),
+ new DateAndWeekNumber(1999, 0, 10, 1),
+ new DateAndWeekNumber(1999, 0, 20, 3),
+ new DateAndWeekNumber(1999, 0, 30, 4),
+
+ new DateAndWeekNumber(1999, 11, 28, 52),
+ new DateAndWeekNumber(1999, 11, 29, 52),
+ new DateAndWeekNumber(1999, 11, 30, 52),
+ new DateAndWeekNumber(1999, 11, 31, 52),
+ new DateAndWeekNumber(2000, 0, 1, 52),
+ new DateAndWeekNumber(2000, 0, 2, 52),
+ new DateAndWeekNumber(2000, 0, 3, 1),
+ new DateAndWeekNumber(2000, 0, 4, 1),
+ new DateAndWeekNumber(2000, 0, 10, 2),
+ new DateAndWeekNumber(2000, 0, 20, 3),
+ new DateAndWeekNumber(2000, 0, 30, 4),
+
+ new DateAndWeekNumber(2000, 11, 28, 52),
+ new DateAndWeekNumber(2000, 11, 29, 52),
+ new DateAndWeekNumber(2000, 11, 30, 52),
+ new DateAndWeekNumber(2000, 11, 31, 52),
+ new DateAndWeekNumber(2001, 0, 1, 1),
+ new DateAndWeekNumber(2001, 0, 2, 1),
+ new DateAndWeekNumber(2001, 0, 3, 1),
+ new DateAndWeekNumber(2001, 0, 4, 1),
+ new DateAndWeekNumber(2001, 0, 10, 2),
+ new DateAndWeekNumber(2001, 0, 20, 3),
+ new DateAndWeekNumber(2001, 0, 30, 5),
+
+ new DateAndWeekNumber(2001, 11, 28, 52),
+ new DateAndWeekNumber(2001, 11, 29, 52),
+ new DateAndWeekNumber(2001, 11, 30, 52),
+ new DateAndWeekNumber(2001, 11, 31, 1),
+ new DateAndWeekNumber(2002, 0, 1, 1),
+ new DateAndWeekNumber(2002, 0, 2, 1),
+ new DateAndWeekNumber(2002, 0, 3, 1),
+ new DateAndWeekNumber(2002, 0, 4, 1),
+ new DateAndWeekNumber(2002, 0, 10, 2),
+ new DateAndWeekNumber(2002, 0, 20, 3),
+ new DateAndWeekNumber(2002, 0, 30, 5),
+
+ new DateAndWeekNumber(2002, 11, 28, 52),
+ new DateAndWeekNumber(2002, 11, 29, 52),
+ new DateAndWeekNumber(2002, 11, 30, 1),
+ new DateAndWeekNumber(2002, 11, 31, 1),
+ new DateAndWeekNumber(2003, 0, 1, 1),
+ new DateAndWeekNumber(2003, 0, 2, 1),
+ new DateAndWeekNumber(2003, 0, 3, 1),
+ new DateAndWeekNumber(2003, 0, 4, 1),
+ new DateAndWeekNumber(2003, 0, 10, 2),
+ new DateAndWeekNumber(2003, 0, 20, 4),
+ new DateAndWeekNumber(2003, 0, 30, 5),
+
+ new DateAndWeekNumber(2003, 11, 28, 52),
+ new DateAndWeekNumber(2003, 11, 29, 1),
+ new DateAndWeekNumber(2003, 11, 30, 1),
+ new DateAndWeekNumber(2003, 11, 31, 1),
+ new DateAndWeekNumber(2004, 0, 1, 1),
+ new DateAndWeekNumber(2004, 0, 2, 1),
+ new DateAndWeekNumber(2004, 0, 3, 1),
+ new DateAndWeekNumber(2004, 0, 4, 1),
+ new DateAndWeekNumber(2004, 0, 10, 2),
+ new DateAndWeekNumber(2004, 0, 20, 4),
+ new DateAndWeekNumber(2004, 0, 30, 5),
+
+ new DateAndWeekNumber(2004, 0, 1, 1),
+ new DateAndWeekNumber(2004, 1, 1, 5),
+ new DateAndWeekNumber(2004, 2, 1, 10),
+ new DateAndWeekNumber(2004, 3, 1, 14),
+ new DateAndWeekNumber(2004, 4, 1, 18),
+ new DateAndWeekNumber(2004, 5, 1, 23),
+ new DateAndWeekNumber(2004, 6, 1, 27),
+ new DateAndWeekNumber(2004, 7, 1, 31),
+ new DateAndWeekNumber(2004, 8, 1, 36),
+ new DateAndWeekNumber(2004, 9, 1, 40),
+ new DateAndWeekNumber(2004, 10, 1, 45),
+ new DateAndWeekNumber(2004, 11, 1, 49),
+
+ new DateAndWeekNumber(2004, 11, 28, 53),
+ new DateAndWeekNumber(2004, 11, 29, 53),
+ new DateAndWeekNumber(2004, 11, 30, 53),
+ new DateAndWeekNumber(2004, 11, 31, 53),
+ new DateAndWeekNumber(2005, 0, 1, 53),
+ new DateAndWeekNumber(2005, 0, 2, 53),
+ new DateAndWeekNumber(2005, 0, 3, 1),
+ new DateAndWeekNumber(2005, 0, 4, 1),
+ new DateAndWeekNumber(2005, 0, 10, 2),
+ new DateAndWeekNumber(2005, 0, 20, 3),
+ new DateAndWeekNumber(2005, 0, 30, 4),
+
+ new DateAndWeekNumber(2005, 11, 28, 52),
+ new DateAndWeekNumber(2005, 11, 29, 52),
+ new DateAndWeekNumber(2005, 11, 30, 52),
+ new DateAndWeekNumber(2005, 11, 31, 52),
+ new DateAndWeekNumber(2006, 0, 1, 52),
+ new DateAndWeekNumber(2006, 0, 2, 1),
+ new DateAndWeekNumber(2006, 0, 3, 1),
+ new DateAndWeekNumber(2006, 0, 4, 1),
+ new DateAndWeekNumber(2006, 0, 10, 2),
+ new DateAndWeekNumber(2006, 0, 20, 3),
+ new DateAndWeekNumber(2006, 0, 30, 5),
+
+ new DateAndWeekNumber(2006, 11, 28, 52),
+ new DateAndWeekNumber(2006, 11, 29, 52),
+ new DateAndWeekNumber(2006, 11, 30, 52),
+ new DateAndWeekNumber(2006, 11, 31, 52),
+ new DateAndWeekNumber(2007, 0, 1, 1),
+ new DateAndWeekNumber(2007, 0, 2, 1),
+ new DateAndWeekNumber(2007, 0, 3, 1),
+ new DateAndWeekNumber(2007, 0, 4, 1),
+ new DateAndWeekNumber(2007, 0, 10, 2),
+ new DateAndWeekNumber(2007, 0, 20, 3),
+ new DateAndWeekNumber(2007, 0, 30, 5),
+
+ new DateAndWeekNumber(2007, 11, 28, 52),
+ new DateAndWeekNumber(2007, 11, 29, 52),
+ new DateAndWeekNumber(2007, 11, 30, 52),
+ new DateAndWeekNumber(2007, 11, 31, 1),
+ new DateAndWeekNumber(2008, 0, 1, 1),
+ new DateAndWeekNumber(2008, 0, 2, 1),
+ new DateAndWeekNumber(2008, 0, 3, 1),
+ new DateAndWeekNumber(2008, 0, 4, 1),
+ new DateAndWeekNumber(2008, 0, 10, 2),
+ new DateAndWeekNumber(2008, 0, 20, 3),
+ new DateAndWeekNumber(2008, 0, 30, 5),
+
+ new DateAndWeekNumber(2008, 11, 28, 52),
+ new DateAndWeekNumber(2008, 11, 29, 1),
+ new DateAndWeekNumber(2008, 11, 30, 1),
+ new DateAndWeekNumber(2008, 11, 31, 1),
+ new DateAndWeekNumber(2009, 0, 1, 1),
+ new DateAndWeekNumber(2009, 0, 2, 1),
+ new DateAndWeekNumber(2009, 0, 3, 1),
+ new DateAndWeekNumber(2009, 0, 4, 1),
+ new DateAndWeekNumber(2009, 0, 10, 2),
+ new DateAndWeekNumber(2009, 0, 20, 4),
+ new DateAndWeekNumber(2009, 0, 30, 5),
+ };
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @SmallTest
+ public void testAll() throws Exception {
+ int len = tests.length;
+ for (int index = 0; index < len; index++) {
+ DateAndWeekNumber test = tests[index];
+ int weekNumber = test.date.getWeekNumber();
+ if (weekNumber != test.expectedWeekNumber) {
+ long millis = test.date.toMillis(false /* use isDst */);
+ int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NUMERIC_DATE;
+ String output = DateUtils.formatDateTime(mContext, millis, flags);
+ Log.i("WeekNumberTest", "index " + index
+ + " date: " + output
+ + " expected: " + test.expectedWeekNumber
+ + " actual: " + weekNumber);
+ }
+ assertEquals(weekNumber, test.expectedWeekNumber);
+
+ weekNumber = test.allDayDate.getWeekNumber();
+ if (weekNumber != test.expectedWeekNumber) {
+ long millis = test.date.toMillis(false /* use isDst */);
+ int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NUMERIC_DATE;
+ String output = DateUtils.formatDateTime(mContext, millis, flags);
+ Log.i("WeekNumberTest", "(all-day) index " + index
+ + " date: " + output
+ + " expected: " + test.expectedWeekNumber
+ + " actual: " + weekNumber);
+ }
+ assertEquals(weekNumber, test.expectedWeekNumber);
+ }
+ }
+}