goog.ui.inputdatepicker_test.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of google-closure-library
Show all versions of google-closure-library
The Google Closure Library is a collection of JavaScript code
designed for use with the Google Closure JavaScript Compiler.
This non-official distribution was prepared by the ClojureScript
team at http://clojure.org/
// Copyright 2008 The Closure Library Authors. All Rights Reserved.
//
// 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.
goog.provide('goog.ui.InputDatePickerTest');
goog.setTestOnly('goog.ui.InputDatePickerTest');
goog.require('goog.dom');
goog.require('goog.i18n.DateTimeFormat');
goog.require('goog.i18n.DateTimeParse');
goog.require('goog.testing.jsunit');
goog.require('goog.ui.InputDatePicker');
var dateTimeFormatter = new goog.i18n.DateTimeFormat('MM/dd/yyyy');
var dateTimeParser = new goog.i18n.DateTimeParse('MM/dd/yyyy');
var inputDatePicker;
var popupDatePicker;
function setUp() {}
function tearDown() {
if (inputDatePicker) {
inputDatePicker.dispose();
}
if (popupDatePicker) {
popupDatePicker.dispose();
}
goog.dom.removeChildren(goog.dom.getElement('renderElement'));
goog.dom.removeChildren(goog.dom.getElement('popupParent'));
}
/**
* Ensure that if setPopupParentElement is not called, that the
* PopupDatePicker is parented to the body element.
*/
function test_setPopupParentElementDefault() {
setPopupParentElement_(null);
assertEquals(
'PopupDatePicker should be parented to the body element', document.body,
popupDatePicker.getElement().parentNode);
}
/**
* Ensure that if setPopupParentElement is called, that the
* PopupDatePicker is parented to the specified element.
*/
function test_setPopupParentElement() {
var popupParentElement = goog.dom.getElement('popupParent');
setPopupParentElement_(popupParentElement);
assertEquals(
'PopupDatePicker should be parented to the popupParent DIV',
popupParentElement, popupDatePicker.getElement().parentNode);
}
/**
* Creates a new InputDatePicker and calls setPopupParentElement with the
* specified element, if provided. If el is null, then setPopupParentElement
* is not called.
* @param {Element} el If non-null, the argument to pass to
* inputDatePicker.setPopupParentElement().
* @private
*/
function setPopupParentElement_(el) {
inputDatePicker =
new goog.ui.InputDatePicker(dateTimeFormatter, dateTimeParser);
if (el) {
inputDatePicker.setPopupParentElement(el);
}
inputDatePicker.render(goog.dom.getElement('renderElement'));
popupDatePicker = inputDatePicker.popupDatePicker_;
}
function test_ItParsesDataCorrectly() {
inputDatePicker =
new goog.ui.InputDatePicker(dateTimeFormatter, dateTimeParser);
inputDatePicker.render(goog.dom.getElement('renderElement'));
inputDatePicker.createDom();
inputDatePicker.setInputValue('8/9/2009');
var parsedDate = inputDatePicker.getInputValueAsDate_();
assertEquals(2009, parsedDate.getYear());
assertEquals(7, parsedDate.getMonth()); // Months start from 0
assertEquals(9, parsedDate.getDate());
}
function test_ItUpdatesItsValueOnPopupShown() {
inputDatePicker =
new goog.ui.InputDatePicker(dateTimeFormatter, dateTimeParser);
setPopupParentElement_(null);
inputDatePicker.setInputValue('1/1/1');
inputDatePicker.showForElement(document.body);
var inputValue = inputDatePicker.getInputValue();
assertEquals('01/01/0001', inputValue);
}
function test_ItDoesNotClearInputOnPopupShown() {
// if popup does not have a date set, don't update input value
inputDatePicker =
new goog.ui.InputDatePicker(dateTimeFormatter, dateTimeParser);
setPopupParentElement_(null);
inputDatePicker.setInputValue('i_am_not_a_date');
inputDatePicker.showForElement(document.body);
var inputValue = inputDatePicker.getInputValue();
assertEquals('i_am_not_a_date', inputValue);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy