Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(962)

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/input/InputDialogContainerTest.java

Issue 85643002: Transfer date/time value to chooser as double (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@doubledate2
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/javatests/src/org/chromium/content/browser/input/InputDialogContainerTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/InputDialogContainerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/InputDialogContainerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..235a859213cd69de0bea6d36b2b5bb58ea0748f7
--- /dev/null
+++ b/content/public/android/javatests/src/org/chromium/content/browser/input/InputDialogContainerTest.java
@@ -0,0 +1,404 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.content.browser.input;
+
+import android.content.Context;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.chromium.base.test.util.Feature;
+
+public class InputDialogContainerTest extends AndroidTestCase {
+ private static int TEXT_INPUT_TYPE_DATE = 0;
+ private static int TEXT_INPUT_TYPE_DATETIME = 1;
+ private static int TEXT_INPUT_TYPE_DATETIMELOCAL = 2;
+ private static int TEXT_INPUT_TYPE_MONTH = 3;
+ private static int TEXT_INPUT_TYPE_TIME = 4;
+ private static int TEXT_INPUT_TYPE_WEEK = 5;
+
+ // Defined in third_party/WebKit/Source/platform/DateComponents.h
+ private static double DATE_DIALOG_DEFAULT_MIN = -62135596800000.0;
+ private static double DATE_DIALOG_DEFAULT_MAX = 8640000000000000.0;
+ private static double DATETIMELOCAL_DIALOG_DEFAULT_MIN = -62135596800000.0;
+ private static double DATETIMELOCAL_DIALOG_DEFAULT_MAX = 8640000000000000.0;
+ private static double MONTH_DIALOG_DEFAULT_MIN = -23628.0;
+ private static double MONTH_DIALOG_DEFAULT_MAX = 3285488.0;
+ private static double TIME_DIALOG_DEFAULT_MIN = 0.0;
+ private static double TIME_DIALOG_DEFAULT_MAX = 86399999.0;
+ private static double WEEK_DIALOG_DEFAULT_MIN = -62135596800000.0;
+ private static double WEEK_DIALOG_DEFAULT_MAX = 8639999568000000.0;
+
+ InputActionDelegateForTests mInputActionDelegate;
+ InputDialogContainerForTests mInputDialogContainer;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ InputDialogContainer.initializeInputTypes(TEXT_INPUT_TYPE_DATE,
+ TEXT_INPUT_TYPE_DATETIME,
+ TEXT_INPUT_TYPE_DATETIMELOCAL,
+ TEXT_INPUT_TYPE_MONTH,
+ TEXT_INPUT_TYPE_TIME,
+ TEXT_INPUT_TYPE_WEEK);
+ mInputActionDelegate = new InputActionDelegateForTests();
+ mInputDialogContainer = new InputDialogContainerForTests(getContext(),
+ mInputActionDelegate);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testDateValueParsing() {
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATE,
+ 1970, 0, 1,
+ 0, 0, 0, 0, 0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATE, 0.0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATE,
+ 1, 0, 1,
+ 0, 0, 0, 0, 0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATE, -62135596800000.0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATE,
+ 275760, 8, 13,
+ 0, 0, 0, 0, 0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATE, 8640000000000000.0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATE,
+ 2013, 10, 7,
+ 0, 0, 0, 0, 0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATE, 1383782400000.0,
+ DATE_DIALOG_DEFAULT_MIN, DATE_DIALOG_DEFAULT_MAX, 1.0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testDatetimelocalValueParsing() {
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 1970, 0, 1,
+ 0, 0, 0, 0, 0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATETIMELOCAL, 0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 1, 0, 1,
+ 0, 0, 0, 0, 0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATETIMELOCAL, -62135596800000.0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 275760, 8, 13,
+ 0, 0, 0, 0, 0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATETIMELOCAL, 8640000000000000.0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 2013, 10, 8,
+ 1, 1, 2, 196, 0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 0.001);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_DATETIMELOCAL, 1383872462196.0,
+ DATETIMELOCAL_DIALOG_DEFAULT_MIN, DATETIMELOCAL_DIALOG_DEFAULT_MAX, 0.001);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testMonthValueParsing() {
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_MONTH,
+ 1970, 0, 0,
+ 0, 0, 0, 0, 0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_MONTH, 0.0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_MONTH,
+ 1, 0, 0,
+ 0, 0, 0, 0, 0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_MONTH, -23628.0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_MONTH,
+ 275760, 8, 0,
+ 0, 0, 0, 0, 0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_MONTH, 3285488.0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_MONTH,
+ 2013, 10, 0,
+ 0, 0, 0, 0, 0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_MONTH, 526.0,
+ MONTH_DIALOG_DEFAULT_MIN, MONTH_DIALOG_DEFAULT_MAX, 1.0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testTimeValueParsing() {
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_TIME,
+ 0, 0, 0,
+ 0, 0, 0, 0, 0,
+ TIME_DIALOG_DEFAULT_MIN, TIME_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_TIME, 0.0,
+ TIME_DIALOG_DEFAULT_MIN, TIME_DIALOG_DEFAULT_MAX, 1.0);
+
+ // Time dialog only shows the hour and minute fields.
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_TIME,
+ 0, 0, 0,
+ 23, 59, 0, 0, 0,
+ TIME_DIALOG_DEFAULT_MIN, TIME_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_TIME, 86399999.0,
+ TIME_DIALOG_DEFAULT_MIN, TIME_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_TIME,
+ 0, 0, 0,
+ 15, 23, 0, 0, 0,
+ TIME_DIALOG_DEFAULT_MIN, TIME_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_TIME, 55425678.0,
+ TIME_DIALOG_DEFAULT_MIN, TIME_DIALOG_DEFAULT_MAX, 1.0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testWeekValueParsing() {
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_WEEK,
+ 1970, 0, 0,
+ 0, 0, 0, 0, 1,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_WEEK, -259200000.0,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_WEEK,
+ 1, 0, 0,
+ 0, 0, 0, 0, 1,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_WEEK, -62135596800000.0,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_WEEK,
+ 275760, 0, 0,
+ 0, 0, 0, 0, 37,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_WEEK, 8639999568000000.0,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+
+ mInputDialogContainer.setShowDialogExpectation(TEXT_INPUT_TYPE_WEEK,
+ 2013, 0, 0,
+ 0, 0, 0, 0, 44,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+ mInputDialogContainer.showDialog(TEXT_INPUT_TYPE_WEEK, 1382918400000.0,
+ WEEK_DIALOG_DEFAULT_MIN, WEEK_DIALOG_DEFAULT_MAX, 1.0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testDateValueGenerating() {
+ mInputActionDelegate.setReplaceDateTimeExpectation(0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATE,
+ 1970, 0, 1,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(-62135596800000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATE,
+ 1, 0, 1,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(8640000000000000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATE,
+ 275760, 8, 13,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(1383782400000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATE,
+ 2013, 10, 7,
+ 0, 0, 0, 0, 0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testDatetimelocalValueGenerating() {
+ mInputActionDelegate.setReplaceDateTimeExpectation(0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 1970, 0, 1,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(-62135596800000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 1, 0, 1,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(8640000000000000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 275760, 8, 13,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(1383872462196.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_DATETIMELOCAL,
+ 2013, 10, 8,
+ 1, 1, 2, 196, 0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testMonthValueGenerating() {
+ mInputActionDelegate.setReplaceDateTimeExpectation(0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_MONTH,
+ 1970, 0, 0,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(-62135596800000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_MONTH,
+ 1, 0, 1,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(8640000000000000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_MONTH,
+ 275760, 8, 0,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(1383872462196.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_MONTH,
+ 2013, 10, 0,
+ 0, 0, 0, 0, 0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testTimeValueGenerating() {
+ mInputActionDelegate.setReplaceDateTimeExpectation(0.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_TIME,
+ 0, 0, 0,
+ 0, 0, 0, 0, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(86399999.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_TIME,
+ 0, 0, 0,
+ 23, 59, 59, 999, 0);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(55425678.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_TIME,
+ 2013, 10, 0,
+ 3, 23, 45, 678, 0);
+ }
+
+ @SmallTest
+ @Feature({"DateTimeDialog"})
+ public void testWeekValueGenerating() {
+ mInputActionDelegate.setReplaceDateTimeExpectation(-259200000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_WEEK,
+ 1970, 0, 0,
+ 0, 0, 0, 0, 1);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(-62135596800000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_WEEK,
+ 1, 0, 0,
+ 0, 0, 0, 0, 1);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(8639999568000000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_WEEK,
+ 275760, 0, 0,
+ 0, 0, 0, 0, 37);
+
+ mInputActionDelegate.setReplaceDateTimeExpectation(1382918400000.0);
+ mInputDialogContainer.setFieldDateTimeValue(TEXT_INPUT_TYPE_WEEK,
+ 2013, 0, 0,
+ 0, 0, 0, 0, 44);
+ }
+
+ private static class InputActionDelegateForTests
+ implements InputDialogContainer.InputActionDelegate {
+ private double mExpectedDialogValue;
+
+ public void setReplaceDateTimeExpectation(double dialogValue) {
+ mExpectedDialogValue = dialogValue;
+ }
+
+ @Override
+ public void replaceDateTime(double dialogValue) {
+ assertEquals(mExpectedDialogValue, dialogValue);
+ }
+
+ @Override
+ public void cancelDateTimeDialog() {
+ }
+ };
+
+ private static class InputDialogContainerForTests extends InputDialogContainer {
+ private int mExpectedDialogType;
+ private int mExpectedYear;
+ private int mExpectedMonth;
+ private int mExpectedMonthDay;
+ private int mExpectedHourOfDay;
+ private int mExpectedMinute;
+ private int mExpectedSecond;
+ private int mExpectedMillis;
+ private int mExpectedWeek;
+ private double mExpectedMin;
+ private double mExpectedMax;
+ private double mExpectedStep;
+
+ public InputDialogContainerForTests(
+ Context context,
+ InputDialogContainer.InputActionDelegate inputActionDelegate) {
+ super(context, inputActionDelegate);
+ }
+
+ void setShowDialogExpectation(int dialogType,
+ int year, int month, int monthDay,
+ int hourOfDay, int minute, int second, int millis, int week,
+ double min, double max, double step) {
+ mExpectedDialogType = dialogType;
+ mExpectedYear = year;
+ mExpectedMonth = month;
+ mExpectedMonthDay = monthDay;
+ mExpectedHourOfDay = hourOfDay;
+ mExpectedMinute = minute;
+ mExpectedSecond = second;
+ mExpectedMillis = millis;
+ mExpectedWeek = week;
+ mExpectedMin = min;
+ mExpectedMax = max;
+ mExpectedStep = step;
+ }
+
+ @Override
+ void showDialog(final int dialogType,
+ int year, int month, int monthDay,
+ int hourOfDay, int minute, int second, int millis, int week,
+ double min, double max, double step) {
+ assertEquals(mExpectedDialogType, dialogType);
+ assertEquals(mExpectedYear, year);
+ assertEquals(mExpectedMonth, month);
+ assertEquals(mExpectedMonthDay, monthDay);
+ assertEquals(mExpectedHourOfDay, hourOfDay);
+ assertEquals(mExpectedMinute, minute);
+ assertEquals(mExpectedSecond, second);
+ assertEquals(mExpectedMillis, millis);
+ assertEquals(mExpectedWeek, week);
+ assertEquals(mExpectedMin, min);
+ assertEquals(mExpectedMax, max);
+ assertEquals(mExpectedStep, step);
+ }
+
+ public void setFieldDateTimeValue(int dialogType,
+ int year, int month, int monthDay,
+ int hourOfDay, int minute, int second, int millis,
+ int week) {
+ super.setFieldDateTimeValue(dialogType,
+ year, month, monthDay,
+ hourOfDay, minute, second, millis,
+ week);
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698