// 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); } }