UNPKG

accessibility-developer-tools

Version:

This is a library of accessibility-related testing and utility code.

111 lines (95 loc) 3.48 kB
// 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.debugTest'); goog.setTestOnly('goog.debugTest'); goog.require('goog.debug'); goog.require('goog.html.SafeHtml'); goog.require('goog.structs.Set'); goog.require('goog.testing.jsunit'); function testExposeException() { var expected = 'Message: message&quot;<br>' + 'Url: <a href="view-source:http://fileName&quot;" ' + 'target="_new">http://fileName&quot;</a><br>' + 'Line: lineNumber&quot;<br><br>' + 'Browser stack:<br>' + 'stack&quot;-&gt; [end]'; var error = { message: 'message"', fileName: 'http://fileName"', lineNumber: 'lineNumber"', stack: 'stack"' }; var actualHtml = goog.debug.exposeExceptionAsHtml(error); var actual = goog.html.SafeHtml.unwrap(actualHtml); actual = actual.substring(0, expected.length); assertEquals(expected, actual); } function testMakeWhitespaceVisible() { assertEquals( 'Hello[_][_]World![r][n]\n' + '[r][n]\n' + '[f][f]I[_]am[t][t]here![r][n]\n', goog.debug.makeWhitespaceVisible( 'Hello World!\r\n\r\n\f\fI am\t\there!\r\n')); } function testGetFunctionName() { // Trivial resolver that matches just a few names: a static function, a // constructor, and a member function. var resolver = function(f) { if (f === goog.debug.getFunctionName) { return 'goog.debug.getFunctionName'; } else if (f === goog.structs.Set) { return 'goog.structs.Set'; } else if (f === goog.structs.Set.prototype.getCount) { return 'goog.structs.Set.getCount'; } else { return null; } }; goog.debug.setFunctionResolver(resolver); assertEquals( 'goog.debug.getFunctionName', goog.debug.getFunctionName(goog.debug.getFunctionName)); assertEquals( 'goog.structs.Set', goog.debug.getFunctionName(goog.structs.Set)); var set = new goog.structs.Set(); assertEquals( 'goog.structs.Set.getCount', goog.debug.getFunctionName(set.getCount)); // This function is matched by the fallback heuristic. assertEquals( 'testGetFunctionName', goog.debug.getFunctionName(testGetFunctionName)); goog.debug.setFunctionResolver(null); } /** * Asserts that a substring can be found in a specified text string. * * @param {string} substring The substring to search for. * @param {string} text The text string to search within. */ function assertContainsSubstring(substring, text) { assertNotEquals( 'Could not find "' + substring + '" in "' + text + '"', -1, text.search(substring)); } function testDeepExpose() { var a = {}; var b = {}; a.ancestor = a; a.otherObject = b; a.otherObjectAgain = b; var deepExpose = goog.debug.deepExpose(a); assertContainsSubstring( 'ancestor = ... reference loop detected ...', deepExpose); assertContainsSubstring('otherObjectAgain = {', deepExpose); }