| <script> |
| var s = "this is a string"; |
| var i = 5; |
| var ni = -5; |
| var f = 3.14159; |
| var o = { prop1: 1, prop2: 2 }; |
| var specifiers = { |
| s: "string", |
| i: "integer", |
| d: "integer", |
| f: "float", |
| "0.3f": "float with precision", |
| o: "object", |
| z: "unsupported", |
| }; |
| |
| function test(args) { |
| var functions = ["log", "debug"]; |
| for (var i = 0; i < functions.length; ++i) { |
| console.info("console." + functions[i] + "(%s)", args); |
| try { |
| eval("console." + functions[i] + "(" + args + ")"); |
| } catch (e) { |
| console.error(e); |
| } |
| } |
| } |
| |
| function testAllSpecifiers(value, description) { |
| for (var specifier in specifiers) |
| test("'Format " + description + " as " + specifiers[specifier] + ": %" + specifier + "', " + value + ""); |
| } |
| |
| function runTests() { |
| var values = [ |
| { value: "window.noSuchVariable", description: "undefined" }, |
| { value: "s", description: "string" }, |
| { value: "i", description: "positive integer" }, |
| { value: "ni", description: "negative integer" }, |
| { value: "f", description: "float" }, |
| { value: "o", description: "object" }, |
| { value: "document.body", description: "body" }, |
| { value: "/test/", description: "RegExp" }, |
| { value: "true", description: "boolean" }, |
| { value: "null", description: "null" }, |
| ]; |
| |
| for (var i = 0; i < values.length; ++i) |
| testAllSpecifiers(values[i].value, values[i].description); |
| |
| var tests = [ |
| "'simple test'", |
| "'multiple', 'parameters', 'should', 'be', 'concatenated'", |
| "document", |
| "document, document.body, window, window.location", |
| "document, document.body, 'hello', 'goodbye', window.location", |
| "'Format string with fewer specifiers than parameters: %o %i %f', document.body, i, f, ni, o", |
| "'Format string with more specifiers than parameters: %o %i %f %i %o', document.body, i, f", |
| ]; |
| |
| for (var i = 0; i < tests.length; ++i) |
| test(tests[i]); |
| |
| } |
| </script> |
| <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=17228">Bug 17228: console.{log,warn,info,error} should support format strings, variable arguments</a>.</p> |
| <p>Open the Inspector (right-click and choose "Inspect Element"), then click the "Run Tests" button.</p> |
| <button onclick="runTests()">Run Tests</button> |