From 27f3452b33cb3f35c2d28d61a47a3add2007dec7 Mon Sep 17 00:00:00 2001
From: Rick Waldron <waldron.rick@gmail.com>
Date: Fri, 23 Jun 2017 11:08:11 -0400
Subject: [PATCH] harness test: arrayContains.js

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
---
 harness/arrayContains.js      | 16 +++++++++++-----
 test/harness/arrayContains.js | 24 ++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 5 deletions(-)
 create mode 100644 test/harness/arrayContains.js

diff --git a/harness/arrayContains.js b/harness/arrayContains.js
index 47af86b8f2..4e84cb75d6 100644
--- a/harness/arrayContains.js
+++ b/harness/arrayContains.js
@@ -1,10 +1,16 @@
-//-----------------------------------------------------------------------------
-function arrayContains(arr, expected) {
+/**
+ * Verify that a subArray is contained within an array.
+ *
+ * @param {Array} array
+ * @param {Array} array
+ */
+
+function arrayContains(array, subArray) {
   var found;
-  for (var i = 0; i < expected.length; i++) {
+  for (var i = 0; i < subArray.length; i++) {
     found = false;
-    for (var j = 0; j < arr.length; j++) {
-      if (expected[i] === arr[j]) {
+    for (var j = 0; j < array.length; j++) {
+      if (subArray[i] === array[j]) {
         found = true;
         break;
       }
diff --git a/test/harness/arrayContains.js b/test/harness/arrayContains.js
new file mode 100644
index 0000000000..3f83e30878
--- /dev/null
+++ b/test/harness/arrayContains.js
@@ -0,0 +1,24 @@
+// Copyright (c) 2017 Rick Waldron.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: >
+    Assert that the contents of an array contains another array as a slice or sub-array
+includes: [arrayContains.js]
+---*/
+
+const willMatch = [0, 1, 2];
+
+assert(arrayContains([0, 1, 2, 3], willMatch));
+assert(arrayContains([null, 0, 1, 2, 3], willMatch));
+assert(arrayContains([undefined, 0, 1, 2, 3], willMatch));
+assert(arrayContains([false, 0, 1, 2, 3], willMatch));
+assert(arrayContains([NaN, 0, 1, 2, 3], willMatch));
+
+const willNotMatch = [1, 0, 2];
+
+assert(!arrayContains([1, /* intentional hole */, 2], willNotMatch), '[1, /* intentional hole */, 2], willNotMatch)');
+assert(!arrayContains([1, null, 2], willNotMatch), '[1, null, 2], willNotMatch)');
+assert(!arrayContains([1, undefined, 2], willNotMatch), '[1, undefined, 2], willNotMatch)');
+assert(!arrayContains([1, false, 2], willNotMatch), '[1, false, 2], willNotMatch)');
+assert(!arrayContains([1, NaN, 2], willNotMatch), '[1, NaN, 2], willNotMatch)');
-- 
GitLab