blob: 440c897bc96239bcbb63ca2f8d3b40de384e45fd [file] [log] [blame]
// Copyright 2010 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.editor.ToolbarFactoryTest');
goog.setTestOnly('goog.ui.editor.ToolbarFactoryTest');
goog.require('goog.dom');
goog.require('goog.testing.ExpectedFailures');
goog.require('goog.testing.editor.TestHelper');
goog.require('goog.testing.jsunit');
goog.require('goog.ui.editor.ToolbarFactory');
goog.require('goog.userAgent');
var helper;
var expectedFailures;
function setUpPage() {
helper = new goog.testing.editor.TestHelper(goog.dom.getElement('myField'));
expectedFailures = new goog.testing.ExpectedFailures();
}
function setUp() {
helper.setUpEditableElement();
}
function tearDown() {
helper.tearDownEditableElement();
expectedFailures.handleTearDown();
}
/**
* Makes sure we have the correct conversion table in
* goog.ui.editor.ToolbarFactory.LEGACY_SIZE_TO_PX_MAP_. Can only be tested in
* a browser that takes legacy size values as input to execCommand but returns
* pixel size values from queryCommandValue. That's OK because that's the only
* situation where this conversion table's precision is critical. (When it's
* used to size the labels of the font size menu options it's ok if it's a few
* pixels off.)
*/
function testGetLegacySizeFromPx() {
// We will be warned if other browsers start behaving like webkit pre-534.7.
expectedFailures.expectFailureFor(
!goog.userAgent.WEBKIT ||
(goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher('534.7')));
try {
var fieldElem = goog.dom.getElement('myField');
// Start from 1 because size 0 is bogus (becomes 16px, legacy size 3).
for (var i = 1; i <
goog.ui.editor.ToolbarFactory.LEGACY_SIZE_TO_PX_MAP_.length; i++) {
helper.select(fieldElem, 0, fieldElem, 1);
document.execCommand('fontSize', false, i);
helper.select('foo', 1);
var value = document.queryCommandValue('fontSize');
assertEquals('Px size ' + value + ' should convert to legacy size ' + i,
i, goog.ui.editor.ToolbarFactory.getLegacySizeFromPx(
parseInt(value, 10)));
}
} catch (e) {
expectedFailures.handleException(e);
}
}