summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/ajax/prototype/test/console.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/mochitest/ajax/prototype/test/console.html')
-rw-r--r--dom/tests/mochitest/ajax/prototype/test/console.html110
1 files changed, 110 insertions, 0 deletions
diff --git a/dom/tests/mochitest/ajax/prototype/test/console.html b/dom/tests/mochitest/ajax/prototype/test/console.html
new file mode 100644
index 0000000000..2b586ee426
--- /dev/null
+++ b/dom/tests/mochitest/ajax/prototype/test/console.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Prototype Console</title>
+ <script src="../dist/prototype.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ Prototype.Console = Class.create();
+ Prototype.Console.prototype = {
+ initialize: function(element, form, input) {
+ this.element = $(element);
+ this.form = $(form);
+ this.input = $(input);
+ this.context = window.eval.bind(window);
+ this.registerCallbacks();
+ document.title = 'Prototype Console ' + Prototype.Version;
+ Field.activate(this.input);
+ },
+
+ registerCallbacks: function() {
+ Event.observe(this.form, 'submit', function(event) {
+ this.eval($F(this.input));
+ this.input.value = '';
+ Field.activate(this.input);
+ Event.stop(event);
+ }.bind(this));
+ },
+
+ log: function(type, message) {
+ new Insertion.Bottom(this.element,
+ '<tr class="' + type + '"><td>' +
+ message.escapeHTML() + '</td></tr>');
+ Element.scrollTo(this.form);
+ },
+
+ eval: function(expression) {
+ if (expression.match(/^\s*$/)) return;
+ try {
+ this.log('input', expression);
+ window.$_ = this.context.call(window, expression);
+ this.log('output', Object.inspect($_));
+ } catch (e) {
+ this.log('error', e.toString());
+ }
+ },
+
+ clear: function() {
+ this.element.innerHTML = '';
+ }
+ }
+ </script>
+ <style type="text/css">
+ body {
+ margin: 0;
+ padding: 0;
+ }
+
+ .console {
+ width: 100%;
+ border-collapse: collapse;
+ margin-bottom: 50px;
+ }
+
+ .console td {
+ padding: 5px;
+ font-family: monospace;
+ font-size: 14px;
+ }
+
+ .console tr.input td {
+ background-color: #eee;
+ font-weight: bold;
+ }
+
+ .console tr.error td,
+ .console tr.output td {
+ color: #333;
+ border-bottom: 1px solid #ccc;
+ }
+
+ .console tr.error td {
+ color: #f00;
+ }
+
+ #input-form {
+ width: 100%;
+ background-color: #f0f5b8;
+ border-top: 1px solid #333;
+ padding: 10px;
+ position: fixed;
+ height: 25px;
+ bottom: 0;
+ margin: 0;
+ }
+ </style>
+ </head>
+ <body>
+ <table class="console">
+ <tbody id="console">
+ </tbody>
+ </table>
+ <form id="input-form">
+ <input type="text" size="60" id="input" />
+ <input type="submit" value="Evaluate" />
+ </form>
+ <script type="text/javascript">
+ window.console = new Prototype.Console('console', 'input-form', 'input');
+ </script>
+ </body>
+</html>