summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2018-01-17 01:00:15 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2018-01-18 18:12:25 +0100
commit7809f386b03d6f2f570fe41060a7ef6e158f5cdb (patch)
tree716e77e4a87eef9c21b9fa149982c4786f8f34d4 /test
parent6ff52b69cc6b3fd05aa332623cbc49c5d3eb7ece (diff)
downloadandroid-node-v8-7809f386b03d6f2f570fe41060a7ef6e158f5cdb.tar.gz
android-node-v8-7809f386b03d6f2f570fe41060a7ef6e158f5cdb.tar.bz2
android-node-v8-7809f386b03d6f2f570fe41060a7ef6e158f5cdb.zip
test: improve console tests
PR-URL: https://github.com/nodejs/node/pull/17708 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-console-assign-undefined.js38
-rw-r--r--test/parallel/test-console-is-a-namespace.js19
2 files changed, 32 insertions, 25 deletions
diff --git a/test/parallel/test-console-assign-undefined.js b/test/parallel/test-console-assign-undefined.js
index 83afcb70c3..76007ce41e 100644
--- a/test/parallel/test-console-assign-undefined.js
+++ b/test/parallel/test-console-assign-undefined.js
@@ -1,27 +1,31 @@
'use strict';
-// Should be above require, because code in require read console
-// what we are trying to avoid
-// set should be earlier than get
+// Patch global.console before importing modules that may modify the console
+// object.
-global.console = undefined;
+const tmp = global.console;
+global.console = 42;
-// Initially, the `console` variable is `undefined`, since console will be
-// lazily loaded in the getter.
-
-require('../common');
+const common = require('../common');
const assert = require('assert');
-// global.console's getter is called
-// Since the `console` cache variable is `undefined` and therefore false-y,
-// the getter still calls NativeModule.require() and returns the object
-// obtained from it, instead of returning `undefined` as expected.
+// Originally the console had a getter. Test twice to verify it had no side
+// effect.
+assert.strictEqual(global.console, 42);
+assert.strictEqual(global.console, 42);
-assert.strictEqual(global.console, undefined, 'first read');
-assert.strictEqual(global.console, undefined, 'second read');
+common.expectsError(
+ () => console.log('foo'),
+ {
+ type: TypeError,
+ message: 'console.log is not a function'
+ }
+);
global.console = 1;
-assert.strictEqual(global.console, 1, 'set true-like primitive');
+assert.strictEqual(global.console, 1);
+assert.strictEqual(console, 1);
-global.console = 0;
-assert.strictEqual(global.console, 0, 'set false-like primitive, again');
+// Reset the console
+global.console = tmp;
+console.log('foo');
diff --git a/test/parallel/test-console-is-a-namespace.js b/test/parallel/test-console-is-a-namespace.js
index f413000805..617e334a83 100644
--- a/test/parallel/test-console-is-a-namespace.js
+++ b/test/parallel/test-console-is-a-namespace.js
@@ -12,8 +12,9 @@ assert.doesNotThrow(() => {
const self = global;
-/* eslint-disable */
-/* The following tests are copied from */
+/* eslint-disable quotes, max-len */
+
+/* The following tests should not be modified as they are copied */
/* WPT Refs:
https://github.com/w3c/web-platform-tests/blob/40e451c/console/console-is-a-namespace.any.js
License: http://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html
@@ -38,12 +39,14 @@ test(() => {
assert_false("Console" in self);
}, "Console (uppercase, as if it were an interface) must not exist");
+test(() => {
+ const prototype1 = Object.getPrototypeOf(console);
+ const prototype2 = Object.getPrototypeOf(prototype1);
-// test(() => {
-// const prototype1 = Object.getPrototypeOf(console);
-// const prototype2 = Object.getPrototypeOf(prototype1);
+ // This got commented out from the original test because in Node.js all
+ // functions are declared on the prototype.
+ // assert_equals(Object.getOwnPropertyNames(prototype1).length, 0, "The [[Prototype]] must have no properties");
+ assert_equals(prototype2, Object.prototype, "The [[Prototype]]'s [[Prototype]] must be %ObjectPrototype%");
+}, "The prototype chain must be correct");
-// assert_equals(Object.getOwnPropertyNames(prototype1).length, 0, "The [[Prototype]] must have no properties");
-// assert_equals(prototype2, Object.prototype, "The [[Prototype]]'s [[Prototype]] must be %ObjectPrototype%");
-// }, "The prototype chain must be correct");
/* eslint-enable */