From bdcb73ae27f228d5cad4f446261010b4bdcee419 Mon Sep 17 00:00:00 2001
From: Valerie R Young <valerie@bocoup.com>
Date: Mon, 2 Oct 2017 14:40:51 -0400
Subject: [PATCH] Add tests for sucessful whitespace removing

---
 .../trimEnd/this-value-line-terminator.js     | 30 +++++++++++++++++
 .../trimEnd/this-value-whitespace.js          | 33 +++++++++++++++++++
 .../trimStart/this-value-line-terminator.js   | 30 +++++++++++++++++
 .../trimStart/this-value-whitespace.js        | 33 +++++++++++++++++++
 4 files changed, 126 insertions(+)
 create mode 100644 test/built-ins/String/prototype/trimEnd/this-value-line-terminator.js
 create mode 100644 test/built-ins/String/prototype/trimEnd/this-value-whitespace.js
 create mode 100644 test/built-ins/String/prototype/trimStart/this-value-line-terminator.js
 create mode 100644 test/built-ins/String/prototype/trimStart/this-value-whitespace.js

diff --git a/test/built-ins/String/prototype/trimEnd/this-value-line-terminator.js b/test/built-ins/String/prototype/trimEnd/this-value-line-terminator.js
new file mode 100644
index 0000000000..3e4eea802e
--- /dev/null
+++ b/test/built-ins/String/prototype/trimEnd/this-value-line-terminator.js
@@ -0,0 +1,30 @@
+// Copyright (c) 2017 Valerie Young.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-string.prototype.trimEnd
+description: TrimEnd removes all line terminators from the end of a string.
+info: |
+  Runtime Symantics: TrimString ( string, where )
+  ...
+  4. Else if where is "end", let T be a String value that is a copy of S with
+     trailing white space removed.
+  ...
+
+  The definition of white space is the union of WhiteSpace and LineTerminator.
+
+features: [string-trimming]
+---*/
+
+var trimEnd = String.prototype.trimEnd;
+
+// A string of all valid LineTerminator Unicode code points
+var lt = '\u000A\u000D\u2028\u2029';
+
+var str = lt + 'a' + lt + 'b' + lt;
+var expected = lt + 'a' + lt + 'b';
+
+assert.sameValue(
+  trimEnd.call(str),
+  expected,
+);
diff --git a/test/built-ins/String/prototype/trimEnd/this-value-whitespace.js b/test/built-ins/String/prototype/trimEnd/this-value-whitespace.js
new file mode 100644
index 0000000000..6889a5bbf8
--- /dev/null
+++ b/test/built-ins/String/prototype/trimEnd/this-value-whitespace.js
@@ -0,0 +1,33 @@
+// Copyright (c) 2017 Valerie Young.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-string.prototype.trimEnd
+description: TrimEnd removes all whitespace from the end of a string.
+info: |
+  Runtime Symantics: TrimString ( string, where )
+  ...
+  3. Else if where is "end", let T be a String value that is a copy of S with
+     trailing white space removed.
+  ...
+
+  The definition of white space is the union of WhiteSpace and LineTerminator.
+  When determining whether a Unicode code point is in Unicode general category
+  “Zs”, code unit sequences are interpreted as UTF-16 encoded code point
+  sequences as specified in 6.1.4.
+
+features: [string-trimming]
+---*/
+
+var trimEnd = String.prototype.trimEnd;
+
+// A string of all valid WhiteSpace Unicode code points
+var wspc = '\u0009\u000B\u000C\u0020\u00A0\FEFF\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000';
+
+var str = wspc + 'a' + wspc + 'b' + wspc;
+var expected = wspc + 'a' + wspc + 'b';
+
+assert.sameValue(
+  trimEnd.call(str),
+  expected,
+);
diff --git a/test/built-ins/String/prototype/trimStart/this-value-line-terminator.js b/test/built-ins/String/prototype/trimStart/this-value-line-terminator.js
new file mode 100644
index 0000000000..743e714a2a
--- /dev/null
+++ b/test/built-ins/String/prototype/trimStart/this-value-line-terminator.js
@@ -0,0 +1,30 @@
+// Copyright (c) 2017 Valerie Young.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-string.prototype.trimStart
+description: TrimStart removes all line terminators from the start of a string.
+info: |
+  Runtime Symantics: TrimString ( string, where )
+  ...
+  4. If where is "start", let T be a String value that is a copy of S with
+     trailing white space removed.
+  ...
+
+  The definition of white space is the union of WhiteSpace and LineTerminator.
+
+features: [string-trimming]
+---*/
+
+var trimStart = String.prototype.trimStart;
+
+// A string of all valid LineTerminator Unicode code points
+var lt = '\u000A\u000D\u2028\u2029';
+
+var str = lt + 'a' + lt + 'b' + lt;
+var expected = 'a' + lt + 'b' + lt;
+
+assert.sameValue(
+  trimStart.call(str),
+  expected,
+);
diff --git a/test/built-ins/String/prototype/trimStart/this-value-whitespace.js b/test/built-ins/String/prototype/trimStart/this-value-whitespace.js
new file mode 100644
index 0000000000..913d3a21ec
--- /dev/null
+++ b/test/built-ins/String/prototype/trimStart/this-value-whitespace.js
@@ -0,0 +1,33 @@
+// Copyright (c) 2017 Valerie Young.  All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-string.prototype.trimStart
+description: TrimStart removes all whitespace from the start of a string.
+info: |
+  Runtime Symantics: TrimString ( string, where )
+  ...
+  3. If where is "start", let T be a String value that is a copy of S with
+     trailing white space removed.
+  ...
+
+  The definition of white space is the union of WhiteSpace and LineTerminator.
+  When determining whether a Unicode code point is in Unicode general category
+  “Zs”, code unit sequences are interpreted as UTF-16 encoded code point
+  sequences as specified in 6.1.4.
+
+features: [string-trimming]
+---*/
+
+var trimStart = String.prototype.trimStart;
+
+// A string of all valid WhiteSpace Unicode code points
+var wspc = '\u0009\u000B\u000C\u0020\u00A0\FEFF\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000';
+
+var str = wspc + 'a' + wspc + 'b' + wspc;
+var expected = 'a' + wspc + 'b' + wspc;
+
+assert.sameValue(
+  trimStart.call(str),
+  expected,
+);
-- 
GitLab