<!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">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[47512] trunk: Build/Test Tools: Update QUnit and Sinon to the latest versions.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/47512">47512</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/47512","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2020-03-27 00:16:58 +0000 (Fri, 27 Mar 2020)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Build/Test Tools: Update QUnit and Sinon to the latest versions.

Update JS tests per the QUnit 2.x Upgrade Guide.

Fixes <a href="https://core.trac.wordpress.org/ticket/37117">#37117</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkpackagelockjson">trunk/package-lock.json</a></li>
<li><a href="#trunkpackagejson">trunk/package.json</a></li>
<li><a href="#trunktestsqunitindexhtml">trunk/tests/qunit/index.html</a></li>
<li><a href="#trunktestsqunitwpadminjscustomizebasejs">trunk/tests/qunit/wp-admin/js/customize-base.js</a></li>
<li><a href="#trunktestsqunitwpadminjscustomizecontrolsutilsjs">trunk/tests/qunit/wp-admin/js/customize-controls-utils.js</a></li>
<li><a href="#trunktestsqunitwpadminjscustomizecontrolsjs">trunk/tests/qunit/wp-admin/js/customize-controls.js</a></li>
<li><a href="#trunktestsqunitwpadminjscustomizeheaderjs">trunk/tests/qunit/wp-admin/js/customize-header.js</a></li>
<li><a href="#trunktestsqunitwpadminjscustomizenavmenusjs">trunk/tests/qunit/wp-admin/js/customize-nav-menus.js</a></li>
<li><a href="#trunktestsqunitwpadminjscustomizewidgetsjs">trunk/tests/qunit/wp-admin/js/customize-widgets.js</a></li>
<li><a href="#trunktestsqunitwpadminjsnavmenujs">trunk/tests/qunit/wp-admin/js/nav-menu.js</a></li>
<li><a href="#trunktestsqunitwpadminjspasswordstrengthmeterjs">trunk/tests/qunit/wp-admin/js/password-strength-meter.js</a></li>
<li><a href="#trunktestsqunitwpadminjswidgetstestmediagallerywidgetjs">trunk/tests/qunit/wp-admin/js/widgets/test-media-gallery-widget.js</a></li>
<li><a href="#trunktestsqunitwpadminjswidgetstestmediaimagewidgetjs">trunk/tests/qunit/wp-admin/js/widgets/test-media-image-widget.js</a></li>
<li><a href="#trunktestsqunitwpadminjswidgetstestmediavideowidgetjs">trunk/tests/qunit/wp-admin/js/widgets/test-media-video-widget.js</a></li>
<li><a href="#trunktestsqunitwpadminjswidgetstestmediawidgetsjs">trunk/tests/qunit/wp-admin/js/widgets/test-media-widgets.js</a></li>
<li><a href="#trunktestsqunitwpincludesjsshortcodejs">trunk/tests/qunit/wp-includes/js/shortcode.js</a></li>
<li><a href="#trunktestsqunitwpincludesjstinymcetinymceobsoletejs">trunk/tests/qunit/wp-includes/js/tinymce/tinymce-obsolete.js</a></li>
<li><a href="#trunktestsqunitwpincludesjswpapijs">trunk/tests/qunit/wp-includes/js/wp-api.js</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li>trunk/tests/qunit/vendor/</li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkpackagelockjson"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/package-lock.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/package-lock.json   2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/package-lock.json     2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1830,6 +1830,51 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><span class="cx" style="display: block; padding: 0 10px">                        "optional": true
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "@sinonjs/commons": {
+                       "version": "1.7.1",
+                       "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz",
+                       "integrity": "sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ==",
+                       "dev": true,
+                       "requires": {
+                               "type-detect": "4.0.8"
+                       }
+               },
+               "@sinonjs/fake-timers": {
+                       "version": "6.0.0",
+                       "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.0.tgz",
+                       "integrity": "sha512-atR1J/jRXvQAb47gfzSK8zavXy7BcpnYq21ALon0U99etu99vsir0trzIO3wpeLtW+LLVY6X7EkfVTbjGSH8Ww==",
+                       "dev": true,
+                       "requires": {
+                               "@sinonjs/commons": "^1.7.0"
+                       }
+               },
+               "@sinonjs/formatio": {
+                       "version": "5.0.1",
+                       "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz",
+                       "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==",
+                       "dev": true,
+                       "requires": {
+                               "@sinonjs/commons": "^1",
+                               "@sinonjs/samsam": "^5.0.2"
+                       }
+               },
+               "@sinonjs/samsam": {
+                       "version": "5.0.3",
+                       "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.0.3.tgz",
+                       "integrity": "sha512-QucHkc2uMJ0pFGjJUDP3F9dq5dx8QIaqISl9QgwLOh6P9yv877uONPGXh/OH/0zmM3tW1JjuJltAZV2l7zU+uQ==",
+                       "dev": true,
+                       "requires": {
+                               "@sinonjs/commons": "^1.6.0",
+                               "lodash.get": "^4.4.2",
+                               "type-detect": "^4.0.8"
+                       }
+               },
+               "@sinonjs/text-encoding": {
+                       "version": "0.7.1",
+                       "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
+                       "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+                       "dev": true
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "@tannin/compile": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.1.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4589,7 +4634,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "p-finally": "^1.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4634,7 +4678,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "http://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "readable-stream": "^2.3.5",
</span><span class="cx" style="display: block; padding: 0 10px">                                "safe-buffer": "^5.1.1"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4927,7 +4970,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "buffer-alloc-unsafe": "^1.1.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "buffer-fill": "^1.0.0"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4937,22 +4979,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.1.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "buffer-crc32": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "0.2.13",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "buffer-fill": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "buffer-from": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.1.1",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5212,7 +5251,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "get-proxy": "^2.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "isurl": "^1.0.0-alpha5",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5347,9 +5385,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "minimist": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "1.2.0",
-                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                                       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "1.2.5",
+                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+                                       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "supports-color": {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5787,7 +5825,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "ini": "^1.3.4",
</span><span class="cx" style="display: block; padding: 0 10px">                                "proto-list": "~1.2.1"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6478,9 +6515,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "minimist": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "1.2.0",
-                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                                       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "1.2.5",
+                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+                                       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "redent": {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6553,7 +6590,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "decompress-tar": "^4.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "decompress-tarbz2": "^4.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6570,7 +6606,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "pify": "^3.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                                        },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6579,8 +6614,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                        "version": "3.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                                        "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                                        "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                        "dev": true,
-                                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6588,8 +6622,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.3.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6598,7 +6631,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "mimic-response": "^1.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6608,7 +6640,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "file-type": "^5.2.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "is-stream": "^1.1.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6619,8 +6650,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "5.2.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6629,7 +6659,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "decompress-tar": "^4.1.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "file-type": "^6.1.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6642,8 +6671,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "6.2.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6652,7 +6680,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "decompress-tar": "^4.1.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                "file-type": "^5.2.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6663,8 +6690,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "5.2.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6673,7 +6699,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "file-type": "^3.8.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "get-stream": "^2.2.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6686,7 +6711,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "pend": "~1.2.0"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6695,8 +6719,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "3.9.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "get-stream": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.3.1",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6703,7 +6726,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "object-assign": "^4.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                                "pinkie-promise": "^2.0.0"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6713,8 +6735,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.3.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "yauzl": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.10.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6721,7 +6742,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "buffer-crc32": "~0.2.3",
</span><span class="cx" style="display: block; padding: 0 10px">                                                "fd-slicer": "~1.1.0"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6900,9 +6920,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "kind-of": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "6.0.2",
-                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-                                       "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "6.0.3",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+                                       "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7227,8 +7247,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "3.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7260,8 +7279,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "0.1.4",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "duplexify": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "3.7.1",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8252,7 +8270,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "cross-spawn": "^5.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                "get-stream": "^3.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8415,7 +8432,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "mime-db": "^1.28.0"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8425,7 +8441,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "ext-list": "^2.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "sort-keys-length": "^1.0.0"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8696,8 +8711,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "filenamify": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.1.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8704,7 +8718,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "filename-reserved-regex": "^2.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "strip-outer": "^1.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9097,8 +9110,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "fs-exists-sync": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "0.1.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9154,8 +9166,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "ansi-regex": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.1.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "aproba": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.2.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9176,14 +9187,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "balanced-match": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "brace-expansion": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.1.11",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "balanced-match": "^1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                                "concat-map": "0.0.1"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9198,20 +9207,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "code-point-at": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.1.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "concat-map": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "0.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "console-control-strings": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.1.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "core-util-is": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.0.2",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9328,8 +9334,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "inherits": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.0.3",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "ini": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.3.5",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9341,7 +9346,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "number-is-nan": "^1.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9356,7 +9360,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "3.0.4",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "brace-expansion": "^1.1.7"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9364,14 +9367,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "minimist": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "0.0.8",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "minipass": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.3.5",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "safe-buffer": "^5.1.2",
</span><span class="cx" style="display: block; padding: 0 10px">                                                "yallist": "^3.0.0"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9390,7 +9391,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "0.5.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "minimist": "0.0.8"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9471,8 +9471,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "number-is-nan": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "object-assign": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "4.1.1",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9484,7 +9483,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.4.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "wrappy": "1"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9570,8 +9568,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "safe-buffer": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "5.1.2",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "safer-buffer": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.1.2",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9607,7 +9604,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.0.2",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "code-point-at": "^1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                                "is-fullwidth-code-point": "^1.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9627,7 +9623,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "3.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "ansi-regex": "^2.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9671,14 +9666,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "wrappy": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.0.2",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "yallist": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "3.0.3",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "bundled": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9847,7 +9840,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "npm-conf": "^1.1.0"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9870,8 +9862,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "3.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "get-value": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.0.6",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10256,8 +10247,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "gradient-parser": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "0.1.5",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11008,8 +10998,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.4.2",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "has-symbols": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -11021,7 +11010,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "has-symbol-support-x": "^1.4.1"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12147,8 +12135,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "4.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "is-number": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "3.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12175,8 +12162,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "is-path-cwd": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.2.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12253,8 +12239,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.2.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "is-stream": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.1.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -12485,7 +12470,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "has-to-string-tag-x": "^1.2.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "is-object": "^1.0.1"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13797,6 +13781,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/js-polyfills/-/js-polyfills-0.1.42.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-XUhJArNh489gH9I60PMLr8yT8Ug="
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "js-reporters": {
+                       "version": "1.2.1",
+                       "resolved": "https://registry.npmjs.org/js-reporters/-/js-reporters-1.2.1.tgz",
+                       "integrity": "sha1-+IxgjjJKM3OpW8xFrTBeXJecRZs=",
+                       "dev": true
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "js-tokens": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "4.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14101,6 +14091,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "object.assign": "^4.1.0"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "just-extend": {
+                       "version": "4.1.0",
+                       "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz",
+                       "integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==",
+                       "dev": true
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "kew": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "0.7.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14280,9 +14276,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "minimist": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "1.2.0",
-                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                                       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "1.2.5",
+                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+                                       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14325,6 +14321,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "lodash.get": {
+                       "version": "4.4.2",
+                       "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+                       "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+                       "dev": true
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "lodash.isequal": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "4.5.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14476,8 +14478,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "lpad-align": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.1.2",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14514,8 +14515,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "4.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "indent-string": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "2.1.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14522,7 +14522,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "repeating": "^2.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14531,8 +14530,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "1.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 },
</span><span class="cx" style="display: block; padding: 0 10px">                                "meow": {
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "3.7.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14554,9 +14552,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "minimist": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "1.2.0",
-                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                                       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "1.2.5",
+                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+                                       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true,
</span><span class="cx" style="display: block; padding: 0 10px">                                        "optional": true
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14995,9 +14993,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        },
</span><span class="cx" style="display: block; padding: 0 10px">                        "dependencies": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "kind-of": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "6.0.2",
-                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-                                       "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "6.0.3",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+                                       "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15043,8 +15041,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "min-indent": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15263,9 +15260,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        },
</span><span class="cx" style="display: block; padding: 0 10px">                        "dependencies": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "kind-of": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "6.0.2",
-                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
-                                       "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "6.0.3",
+                                       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+                                       "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15318,6 +15315,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "nise": {
+                       "version": "4.0.3",
+                       "resolved": "https://registry.npmjs.org/nise/-/nise-4.0.3.tgz",
+                       "integrity": "sha512-EGlhjm7/4KvmmE6B/UFsKh7eHykRl9VH+au8dduHLCyWUO/hr7+N+WtTvDUwc9zHuM1IaIJs/0lQ6Ag1jDkQSg==",
+                       "dev": true,
+                       "requires": {
+                               "@sinonjs/commons": "^1.7.0",
+                               "@sinonjs/fake-timers": "^6.0.0",
+                               "@sinonjs/text-encoding": "^0.7.1",
+                               "just-extend": "^4.0.2",
+                               "path-to-regexp": "^1.7.0"
+                       },
+                       "dependencies": {
+                               "isarray": {
+                                       "version": "0.0.1",
+                                       "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                                       "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                                       "dev": true
+                               },
+                               "path-to-regexp": {
+                                       "version": "1.8.0",
+                                       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+                                       "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "isarray": "0.0.1"
+                                       }
+                               }
+                       }
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "node-fetch": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.7.3",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15517,9 +15544,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "minimist": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "1.2.0",
-                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                                       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "1.2.5",
+                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+                                       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "redent": {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15549,6 +15576,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "node-watch": {
+                       "version": "0.6.1",
+                       "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.6.1.tgz",
+                       "integrity": "sha512-gwQiR7weFRV8mAtT0x0kXkZ18dfRLB45xH7q0hCOVQMLfLb2f1ZaSvR57q4/b/Vj6B0RwMNJYbvb69e1yM7qEA==",
+                       "dev": true
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "nopt": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "3.0.6",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15599,7 +15632,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "config-chain": "^1.1.11",
</span><span class="cx" style="display: block; padding: 0 10px">                                "pify": "^3.0.0"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -15609,8 +15641,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "version": "3.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "dev": true,
-                                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16346,7 +16377,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "p-finally": "^1.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17518,8 +17548,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.2.4",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "proxy-addr": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.0.5",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17712,6 +17741,36 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "qunit": {
+                       "version": "2.9.3",
+                       "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.9.3.tgz",
+                       "integrity": "sha512-RH4VYSaVsNRDthMFFboTJAJ8q4kJM5LvOqWponKUYPEAeOcmc/YFV1QsZ7ikknA3TjqliWFJYEV63vvVXaALmQ==",
+                       "dev": true,
+                       "requires": {
+                               "commander": "2.12.2",
+                               "js-reporters": "1.2.1",
+                               "minimatch": "3.0.4",
+                               "node-watch": "0.6.1",
+                               "resolve": "1.9.0"
+                       },
+                       "dependencies": {
+                               "commander": {
+                                       "version": "2.12.2",
+                                       "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
+                                       "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
+                                       "dev": true
+                               },
+                               "resolve": {
+                                       "version": "1.9.0",
+                                       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz",
+                                       "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "path-parse": "^1.0.6"
+                                       }
+                               }
+                       }
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "raf": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "3.4.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19004,7 +19063,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "commander": "~2.8.1"
</span><span class="cx" style="display: block; padding: 0 10px">                        },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19014,7 +19072,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "graceful-readlink": ">= 1.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19362,6 +19419,50 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "sinon": {
+                       "version": "9.0.1",
+                       "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.0.1.tgz",
+                       "integrity": "sha512-iTTyiQo5T94jrOx7X7QLBZyucUJ2WvL9J13+96HMfm2CGoJYbIPqRfl6wgNcqmzk0DI28jeGx5bUTXizkrqBmg==",
+                       "dev": true,
+                       "requires": {
+                               "@sinonjs/commons": "^1.7.0",
+                               "@sinonjs/fake-timers": "^6.0.0",
+                               "@sinonjs/formatio": "^5.0.1",
+                               "@sinonjs/samsam": "^5.0.3",
+                               "diff": "^4.0.2",
+                               "nise": "^4.0.1",
+                               "supports-color": "^7.1.0"
+                       },
+                       "dependencies": {
+                               "diff": {
+                                       "version": "4.0.2",
+                                       "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+                                       "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+                                       "dev": true
+                               },
+                               "has-flag": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+                                       "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+                                       "dev": true
+                               },
+                               "supports-color": {
+                                       "version": "7.1.0",
+                                       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+                                       "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+                                       "dev": true,
+                                       "requires": {
+                                               "has-flag": "^4.0.0"
+                                       }
+                               }
+                       }
+               },
+               "sinon-test": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/sinon-test/-/sinon-test-3.0.0.tgz",
+                       "integrity": "sha512-k2V042JwIS6SC3M8Ih3Uo6+6mlL5FKqvvobxoWQobFkACr61WpyAMKsfqXecLL+DrDD3s9T+eYSZdVQzMH1pkA==",
+                       "dev": true
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "sisteransi": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.5",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19558,7 +19659,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "is-plain-obj": "^1.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19568,7 +19668,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "sort-keys": "^1.0.0"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20194,7 +20293,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "is-natural-number": "^4.0.1"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20225,7 +20323,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "escape-string-regexp": "^1.0.2"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20865,7 +20962,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "bl": "^1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "buffer-alloc": "^1.2.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20880,8 +20976,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "tempfile": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20888,7 +20983,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "temp-dir": "^1.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                                "uuid": "^3.0.1"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21048,8 +21142,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "4.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "timers-browserify": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.0.10",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21132,8 +21225,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.1.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "to-fast-properties": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "2.0.0",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21265,7 +21357,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "escape-string-regexp": "^1.0.2"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21390,6 +21481,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                "prelude-ls": "~1.1.2"
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "type-detect": {
+                       "version": "4.0.8",
+                       "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+                       "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+                       "dev": true
+               },
</ins><span class="cx" style="display: block; padding: 0 10px">                 "type-fest": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "0.8.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21487,7 +21584,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==",
</span><span class="cx" style="display: block; padding: 0 10px">                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "buffer": "^5.2.1",
</span><span class="cx" style="display: block; padding: 0 10px">                                "through": "^2.3.8"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21498,7 +21594,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==",
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "optional": true,
</del><span class="cx" style="display: block; padding: 0 10px">                                         "requires": {
</span><span class="cx" style="display: block; padding: 0 10px">                                                "base64-js": "^1.0.2",
</span><span class="cx" style="display: block; padding: 0 10px">                                                "ieee754": "^1.1.4"
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21798,8 +21893,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "1.0.1",
</span><span class="cx" style="display: block; padding: 0 10px">                        "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
</span><span class="cx" style="display: block; padding: 0 10px">                        "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        "dev": true,
-                       "optional": true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 "dev": true
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px">                "use": {
</span><span class="cx" style="display: block; padding: 0 10px">                        "version": "3.1.1",
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21985,9 +22079,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "minimist": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "1.2.0",
-                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                                       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "1.2.5",
+                                       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+                                       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22127,9 +22221,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        },
</span><span class="cx" style="display: block; padding: 0 10px">                        "dependencies": {
</span><span class="cx" style="display: block; padding: 0 10px">                                "acorn": {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        "version": "6.3.0",
-                                       "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
-                                       "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 "version": "6.4.1",
+                                       "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+                                       "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
</ins><span class="cx" style="display: block; padding: 0 10px">                                         "dev": true
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                "ajv": {
</span></span></pre></div>
<a id="trunkpackagejson"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/package.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/package.json        2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/package.json  2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -63,6 +63,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                "jquery-migrate": "1.4.1",
</span><span class="cx" style="display: block; padding: 0 10px">                "matchdep": "~2.0.0",
</span><span class="cx" style="display: block; padding: 0 10px">                "node-sass": "~4.13.1",
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                "qunit": "~2.9.0",
+               "sinon": "~9.0.0",
+               "sinon-test": "~3.0.0",
</ins><span class="cx" style="display: block; padding: 0 10px">                 "source-map-loader": "^0.2.4",
</span><span class="cx" style="display: block; padding: 0 10px">                "uglify-js": "^3.6.0",
</span><span class="cx" style="display: block; padding: 0 10px">                "uglifyjs-webpack-plugin": "2.2.0",
</span></span></pre></div>
<a id="trunktestsqunitindexhtml"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/index.html</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/index.html      2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/index.html        2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -56,11 +56,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                <script src="../../build/wp-includes/js/mce-view.js"></script>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                <!-- QUnit -->
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <link rel="stylesheet" href="vendor/qunit.css" type="text/css" media="screen" />
-               <script src="vendor/qunit.js"></script>
-               <script src="vendor/sinon.js"></script>
-               <script src="vendor/sinon-qunit.js"></script>
-               <script>QUnit.config.hidepassed = false;</script>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         <link rel="stylesheet" href="../../node_modules/qunit/qunit/qunit.css" type="text/css" media="screen" />
+               <script src="../../node_modules/qunit/qunit/qunit.js"></script>
+               <script src="../../node_modules/sinon/pkg/sinon.js"></script>
+               <script src="../../node_modules/sinon-test/dist/sinon-test.js"></script>
+               <script>
+                       var qTest = QUnit.test, sTest = sinonTest( sinon );
+
+                       QUnit.config.hidepassed = false;
+
+                       QUnit.test = function( testName, callback ) {
+                               return qTest( testName, sTest(callback) );
+                       };
+               </script>
</ins><span class="cx" style="display: block; padding: 0 10px">         </head>
</span><span class="cx" style="display: block; padding: 0 10px">        <body>
</span><span class="cx" style="display: block; padding: 0 10px">                <div id="qunit"></div>
</span></span></pre></div>
<a id="trunktestsqunitwpadminjscustomizebasejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/customize-base.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/customize-base.js   2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/customize-base.js     2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,14 +1,14 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/* global wp, test, ok, equal, module */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* global wp */
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery( function( $ ) {
</span><span class="cx" style="display: block; padding: 0 10px">        var FooSuperClass, BarSubClass, foo, bar, ConstructorTestClass, newConstructor, constructorTest, $mockElement, mockString,
</span><span class="cx" style="display: block; padding: 0 10px">        firstInitialValue, firstValueInstance, valuesInstance, wasCallbackFired, mockValueCallback;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: Class' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: Class' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        FooSuperClass = wp.customize.Class.extend(
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        initialize: function ( instanceProps ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 initialize: function( instanceProps ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $.extend( this, instanceProps || {} );
</span><span class="cx" style="display: block; padding: 0 10px">                        },
</span><span class="cx" style="display: block; padding: 0 10px">                        protoProp: 'protoPropValue'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17,40 +17,40 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        staticProp: 'staticPropValue'
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'FooSuperClass is a function ', function () {
-               equal( typeof FooSuperClass, 'function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'FooSuperClass is a function', function( assert ) {
+               assert.equal( typeof FooSuperClass, 'function' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'FooSuperClass prototype has protoProp', function () {
-               equal( FooSuperClass.prototype.protoProp, 'protoPropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'FooSuperClass prototype has protoProp', function( assert ) {
+               assert.equal( FooSuperClass.prototype.protoProp, 'protoPropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'FooSuperClass does not have protoProp', function () {
-               equal( typeof FooSuperClass.protoProp, 'undefined' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'FooSuperClass does not have protoProp', function( assert ) {
+               assert.equal( typeof FooSuperClass.protoProp, 'undefined' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'FooSuperClass has staticProp', function () {
-               equal( FooSuperClass.staticProp, 'staticPropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'FooSuperClass has staticProp', function( assert ) {
+               assert.equal( FooSuperClass.staticProp, 'staticPropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'FooSuperClass prototype does not have staticProp', function () {
-               equal( typeof FooSuperClass.prototype.staticProp, 'undefined' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'FooSuperClass prototype does not have staticProp', function( assert ) {
+               assert.equal( typeof FooSuperClass.prototype.staticProp, 'undefined' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        foo = new FooSuperClass( { instanceProp: 'instancePropValue' } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'FooSuperClass instance foo extended Class', function () {
-               equal( foo.extended( wp.customize.Class ), true );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'FooSuperClass instance foo extended Class', function( assert ) {
+               assert.equal( foo.extended( wp.customize.Class ), true );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'foo instance has protoProp', function () {
-               equal( foo.protoProp, 'protoPropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'foo instance has protoProp', function( assert ) {
+               assert.equal( foo.protoProp, 'protoPropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'foo instance does not have staticProp', function () {
-               equal( typeof foo.staticProp, 'undefined' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'foo instance does not have staticProp', function( assert ) {
+               assert.equal( typeof foo.staticProp, 'undefined' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'FooSuperClass instance foo ran initialize() and has supplied instanceProp', function () {
-               equal( foo.instanceProp, 'instancePropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'FooSuperClass instance foo ran initialize() and has supplied instanceProp', function( assert ) {
+               assert.equal( foo.instanceProp, 'instancePropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Test Class.applicator?
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Do we test object.instance?
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: Subclass' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: Subclass' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        BarSubClass = FooSuperClass.extend(
</span><span class="cx" style="display: block; padding: 0 10px">                {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -64,26 +64,26 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        subStaticProp: 'subStaticPropValue'
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'BarSubClass prototype has subProtoProp', function () {
-               equal( BarSubClass.prototype.subProtoProp, 'subProtoPropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'BarSubClass prototype has subProtoProp', function( assert ) {
+               assert.equal( BarSubClass.prototype.subProtoProp, 'subProtoPropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'BarSubClass prototype has parent FooSuperClass protoProp', function () {
-               equal( BarSubClass.prototype.protoProp, 'protoPropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'BarSubClass prototype has parent FooSuperClass protoProp', function( assert ) {
+               assert.equal( BarSubClass.prototype.protoProp, 'protoPropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        bar = new BarSubClass( { instanceProp: 'instancePropValue' } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'BarSubClass instance bar its initialize() and parent initialize() run', function () {
-               equal( bar.instanceProp, 'instancePropValue' );
-               equal( bar.subInstanceProp, 'subInstancePropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'BarSubClass instance bar its initialize() and parent initialize() run', function( assert ) {
+               assert.equal( bar.instanceProp, 'instancePropValue' );
+               assert.equal( bar.subInstanceProp, 'subInstancePropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'BarSubClass instance bar extended FooSuperClass', function () {
-               equal( bar.extended( FooSuperClass ), true );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'BarSubClass instance bar extended FooSuperClass', function( assert ) {
+               assert.equal( bar.extended( FooSuperClass ), true );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Implements todo: Test Class.constructor() manipulation.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: Constructor Manipulation' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: Constructor Manipulation' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        newConstructor = function ( instanceProps ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $.extend( this , instanceProps || {} );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -99,57 +99,57 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'New constructor added to class' , function () {
-               equal( ConstructorTestClass.prototype.constructor , newConstructor );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'New constructor added to class', function( assert ) {
+               assert.equal( ConstructorTestClass.prototype.constructor , newConstructor );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Class with new constructor has protoPropValue' , function () {
-               equal( ConstructorTestClass.prototype.protoProp , 'protoPropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Class with new constructor has protoPropValue', function( assert ) {
+               assert.equal( ConstructorTestClass.prototype.protoProp , 'protoPropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        constructorTest = new ConstructorTestClass( { instanceProp: 'instancePropValue' } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                test( 'ConstructorTestClass instance constructorTest has the new constructor', function () {
-               equal( constructorTest.constructor, newConstructor );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         QUnit.test( 'ConstructorTestClass instance constructorTest has the new constructor', function( assert ) {
+               assert.equal( constructorTest.constructor, newConstructor );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'ConstructorTestClass instance constructorTest extended Class', function () {
-               equal( constructorTest.extended( wp.customize.Class ), true );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'ConstructorTestClass instance constructorTest extended Class', function( assert ) {
+               assert.equal( constructorTest.extended( wp.customize.Class ), true );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'ConstructorTestClass instance constructorTest has the added instance property', function () {
-               equal( constructorTest.instanceProp , 'instancePropValue' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'ConstructorTestClass instance constructorTest has the added instance property', function( assert ) {
+               assert.equal( constructorTest.instanceProp , 'instancePropValue' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: wp.customizer.ensure' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: wp.customizer.ensure' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        $mockElement = $( '<div id="mockElement"></div>' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Handles jQuery argument' , function() {
-               equal( wp.customize.ensure( $mockElement ) , $mockElement );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Handles jQuery argument', function( assert ) {
+               assert.equal( wp.customize.ensure( $mockElement ) , $mockElement );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        mockString = '<div class="mockString"></div>';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Handles string argument' , function() {
-               ok( wp.customize.ensure( mockString ) instanceof jQuery );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Handles string argument', function( assert ) {
+               assert.ok( wp.customize.ensure( mockString ) instanceof jQuery );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: Value Class' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: Value Class' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        firstInitialValue = true;
</span><span class="cx" style="display: block; padding: 0 10px">        firstValueInstance = new wp.customize.Value( firstInitialValue );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Initialized with the right value' , function() {
-               equal( firstValueInstance.get() , firstInitialValue );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Initialized with the right value', function( assert ) {
+               assert.equal( firstValueInstance.get() , firstInitialValue );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( '.set() works' , function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( '.set() works', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 firstValueInstance.set( false );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( firstValueInstance.get() , false );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( firstValueInstance.get() , false );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( '.bind() adds new callback that fires on set()' , function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( '.bind() adds new callback that fires on set()', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 wasCallbackFired = false;
</span><span class="cx" style="display: block; padding: 0 10px">                mockValueCallback = function() {
</span><span class="cx" style="display: block; padding: 0 10px">                        wasCallbackFired = true;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -156,14 +156,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px">                firstValueInstance.bind( mockValueCallback );
</span><span class="cx" style="display: block; padding: 0 10px">                firstValueInstance.set( 'newValue' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( wasCallbackFired );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( wasCallbackFired );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: Values Class' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: Values Class' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        valuesInstance = new wp.customize.Values();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Correct events are triggered when adding to or removing from Values collection', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Correct events are triggered when adding to or removing from Values collection', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var hasFooOnAdd = false,
</span><span class="cx" style="display: block; padding: 0 10px">                        hasFooOnRemove = false,
</span><span class="cx" style="display: block; padding: 0 10px">                        hasFooOnRemoved = true,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -179,8 +179,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        valuePassedToAdd = value;
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">                valuesInstance.add( 'foo', fooValue );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasFooOnAdd );
-               equal( valuePassedToAdd.get(), fooValue.get() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasFooOnAdd );
+               assert.equal( valuePassedToAdd.get(), fooValue.get() );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test events when removing the value.
</span><span class="cx" style="display: block; padding: 0 10px">                valuesInstance.bind( 'remove', function( value ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -194,19 +194,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        wasEventFiredOnRemoval = true;
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">                valuesInstance.remove( 'foo' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasFooOnRemove );
-               equal( valuePassedToRemove.get(), fooValue.get() );
-               ok( ! hasFooOnRemoved );
-               equal( valuePassedToRemoved.get(), fooValue.get() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasFooOnRemove );
+               assert.equal( valuePassedToRemove.get(), fooValue.get() );
+               assert.ok( ! hasFooOnRemoved );
+               assert.equal( valuePassedToRemoved.get(), fooValue.get() );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Confirm no events are fired when nonexistent value is removed.
</span><span class="cx" style="display: block; padding: 0 10px">                wasEventFiredOnRemoval = false;
</span><span class="cx" style="display: block; padding: 0 10px">                valuesInstance.remove( 'bar' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! wasEventFiredOnRemoval );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! wasEventFiredOnRemoval );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: Notification' );
-       test( 'Notification object exists and has expected properties', function ( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: Notification' );
+       QUnit.test( 'Notification object exists and has expected properties', function ( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var notification = new wp.customize.Notification( 'mycode', {
</span><span class="cx" style="display: block; padding: 0 10px">                        'message': 'Hello World',
</span><span class="cx" style="display: block; padding: 0 10px">                        'type': 'update',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -231,8 +231,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                assert.equal( null, notification.data );
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Base: utils.parseQueryString' );
-       test( 'wp.customize.utils.parseQueryString works', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Base: utils.parseQueryString' );
+       QUnit.test( 'wp.customize.utils.parseQueryString works', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var queryParams;
</span><span class="cx" style="display: block; padding: 0 10px">                queryParams = wp.customize.utils.parseQueryString( 'a=1&b=2' );
</span><span class="cx" style="display: block; padding: 0 10px">                assert.ok( _.isEqual( queryParams, { a: '1', b: '2' } ) );
</span></span></pre></div>
<a id="trunktestsqunitwpadminjscustomizecontrolsutilsjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/customize-controls-utils.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/customize-controls-utils.js 2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/customize-controls-utils.js   2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4,7 +4,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        var trueMockEvent, falseMockEvent, mockElementLists, $firstMockElement, $secondMockElement, $thirdMockElement,
</span><span class="cx" style="display: block; padding: 0 10px">                BubbleTester, BubbleTesterTwoValues, bubbleTesterParent, firstBubbleTester, secondBubbleTester;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Model Utility functions' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Model Utility functions' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        trueMockEvent = {
</span><span class="cx" style="display: block; padding: 0 10px">                type : 'keydown',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -16,12 +16,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                which : 13
</span><span class="cx" style="display: block; padding: 0 10px">        };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'isKeydownButNotEnterEvent returns true' , function () {
-               ok( wp.customize.utils.isKeydownButNotEnterEvent( trueMockEvent ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'isKeydownButNotEnterEvent returns true', function( assert ) {
+               assert.ok( wp.customize.utils.isKeydownButNotEnterEvent( trueMockEvent ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'isKeydownButNotEnterEvent returns false' , function () {
-               equal( wp.customize.utils.isKeydownButNotEnterEvent( falseMockEvent ) , false );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'isKeydownButNotEnterEvent returns false', function( assert ) {
+               assert.equal( wp.customize.utils.isKeydownButNotEnterEvent( falseMockEvent ) , false );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        $firstMockElement = $( '<div id="foo"></div>' );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -36,20 +36,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">                thirdButLonger : [ $firstMockElement, $secondMockElement, $thirdMockElement ]
</span><span class="cx" style="display: block; padding: 0 10px">        };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'areElementListsEqual returns true' , function () {
-               ok( wp.customize.utils.areElementListsEqual( mockElementLists.first , mockElementLists.first ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'areElementListsEqual returns true', function( assert ) {
+               assert.ok( wp.customize.utils.areElementListsEqual( mockElementLists.first , mockElementLists.first ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'areElementListsEqual returns false' , function () {
-               equal( wp.customize.utils.areElementListsEqual( mockElementLists.first , mockElementLists.second ) , false );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'areElementListsEqual returns false', function( assert ) {
+               assert.equal( wp.customize.utils.areElementListsEqual( mockElementLists.first , mockElementLists.second ) , false );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'areElementListsEqual: lists have same values, but in reverse order' , function () {
-               equal( wp.customize.utils.areElementListsEqual( mockElementLists.first , mockElementLists.firstInReverseOrder ) , false );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'areElementListsEqual: lists have same values, but in reverse order', function( assert ) {
+               assert.equal( wp.customize.utils.areElementListsEqual( mockElementLists.first , mockElementLists.firstInReverseOrder ) , false );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'areElementListsEqual: lists have same values, but one is longer' , function () {
-               equal( wp.customize.utils.areElementListsEqual( mockElementLists.third , mockElementLists.thirdButLonger ) , false );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'areElementListsEqual: lists have same values, but one is longer', function( assert ) {
+               assert.equal( wp.customize.utils.areElementListsEqual( mockElementLists.third , mockElementLists.thirdButLonger ) , false );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -72,15 +72,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'bubbleChildValueChanges notifies parent of change' , function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'bubbleChildValueChanges notifies parent of change', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 firstBubbleTester = new BubbleTester();
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize.utils.bubbleChildValueChanges( firstBubbleTester , [ 'fooValue' ] );
</span><span class="cx" style="display: block; padding: 0 10px">                firstBubbleTester.fooValue.set( 'new value' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( firstBubbleTester.parent.wasChangeTriggered );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( firstBubbleTester.parent.wasChangeTriggered );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'bubbleChildValueChanges passes a reference to its instance' , function() {
-               ok( firstBubbleTester.parent.instancePassedInTrigger instanceof BubbleTester );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'bubbleChildValueChanges passes a reference to its instance', function( assert ) {
+               assert.ok( firstBubbleTester.parent.instancePassedInTrigger instanceof BubbleTester );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        BubbleTesterTwoValues = wp.customize.Class.extend(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -98,11 +98,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">        wp.customize.utils.bubbleChildValueChanges( secondBubbleTester , [ 'exampleValue' , 'barValue' ] );
</span><span class="cx" style="display: block; padding: 0 10px">        secondBubbleTester.barValue.set( 'new value' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'bubbleChildValueChanges notifies parent of change when two values are bound' , function() {
-               ok( secondBubbleTester.parent.wasChangeTriggered );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'bubbleChildValueChanges notifies parent of change when two values are bound', function( assert ) {
+               assert.ok( secondBubbleTester.parent.wasChangeTriggered );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'bubbleChildValueChanges passes a reference to its instance when two values are bound' , function() {
-               ok( secondBubbleTester.parent.instancePassedInTrigger instanceof BubbleTesterTwoValues );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'bubbleChildValueChanges passes a reference to its instance when two values are bound', function( assert ) {
+               assert.ok( secondBubbleTester.parent.instancePassedInTrigger instanceof BubbleTesterTwoValues );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> });
</span></span></pre></div>
<a id="trunktestsqunitwpadminjscustomizecontrolsjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/customize-controls.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/customize-controls.js       2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/customize-controls.js 2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,4 +1,4 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/* global JSON, wp, test, ok, equal, module */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* global JSON, wp */
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> wp.customize.settingConstructor.abbreviation = wp.customize.Setting.extend({
</span><span class="cx" style="display: block; padding: 0 10px">        validate: function( value ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6,7 +6,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery( window ).load( function (){
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+jQuery( window ).load( function() {
</ins><span class="cx" style="display: block; padding: 0 10px">         'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        var controlId, controlLabel, controlType, controlContent, controlDescription, controlData, mockControl,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -19,76 +19,76 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        throw new Error( 'Must pass value type in expectedValues.' );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                var type = expectedValues.type;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                test( 'Model extends proper type', function () {
-                       ok( model.extended( wp.customize[ type ] ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         QUnit.test( 'Model extends proper type', function( assert ) {
+                       assert.ok( model.extended( wp.customize[ type ] ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ( expectedValues.hasOwnProperty( 'id' ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance has the right id', function () {
-                               equal( model.id, expectedValues.id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance has the right id', function( assert ) {
+                               assert.equal( model.id, expectedValues.id );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                if ( expectedValues.hasOwnProperty( 'title') ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance has the right title.', function () {
-                               equal( model.params.title, expectedValues.title );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance has the right title.', function( assert ) {
+                               assert.equal( model.params.title, expectedValues.title );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                if ( expectedValues.hasOwnProperty( 'description' ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance has the right description.', function () {
-                               equal( model.params.description, expectedValues.description );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance has the right description.', function( assert ) {
+                               assert.equal( model.params.description, expectedValues.description );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                if ( expectedValues.hasOwnProperty( 'content' ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance has the right content.', function () {
-                               equal( model.params.content, expectedValues.content );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance has the right content.', function( assert ) {
+                               assert.equal( model.params.content, expectedValues.content );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                if ( expectedValues.hasOwnProperty( 'priority' ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance has the right priority.', function () {
-                               equal( model.priority(), expectedValues.priority );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance has the right priority.', function( assert ) {
+                               assert.equal( model.priority(), expectedValues.priority );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">                if ( expectedValues.hasOwnProperty( 'active' ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance has the right active state.', function () {
-                               equal( model.active(), expectedValues.active );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance has the right active state.', function( assert ) {
+                               assert.equal( model.active(), expectedValues.active );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                test( type + ' can be deactivated', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         QUnit.test( type + ' can be deactivated', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         model.activate();
</span><span class="cx" style="display: block; padding: 0 10px">                        model.deactivate();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( model.active(), false );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( model.active(), false );
</ins><span class="cx" style="display: block; padding: 0 10px">                         model.activate();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( model.active(), true );
-                       ok(true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( model.active(), true );
+                       assert.ok(true);
</ins><span class="cx" style="display: block; padding: 0 10px">                 });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                if ( type === 'Panel' || type === 'Section' ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( expectedValues.hasOwnProperty( 'expanded' ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                test( type + ' instance has the right expanded state.', function () {
-                                       equal( model.expanded(), expectedValues.expanded );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         QUnit.test( type + ' instance has the right expanded state.', function( assert ) {
+                                       assert.equal( model.expanded(), expectedValues.expanded );
</ins><span class="cx" style="display: block; padding: 0 10px">                                 } );
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance is collapsed after calling .collapse()', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance is collapsed after calling .collapse()', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 model.collapse();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                ok( ! model.expanded() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         assert.ok( ! model.expanded() );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        test( type + ' instance is expanded after calling .expand()', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( type + ' instance is expanded after calling .expand()', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 model.expand();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                ok( model.expanded() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         assert.ok( model.expanded() );
</ins><span class="cx" style="display: block; padding: 0 10px">                         });
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer notifications collection' );
-       test( 'Notifications collection exists', function() {
-               ok( wp.customize.notifications );
-               equal( wp.customize.notifications.defaultConstructor, wp.customize.Notification );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer notifications collection' );
+       QUnit.test( 'Notifications collection exists', function( assert ) {
+               assert.ok( wp.customize.notifications );
+               assert.equal( wp.customize.notifications.defaultConstructor, wp.customize.Notification );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Notification objects are rendered as part of notifications collection', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Notification objects are rendered as part of notifications collection', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var container = jQuery( '#customize-notifications-test' ), items, collection;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                collection = new wp.customize.Notifications({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -97,8 +97,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                collection.add( 'mycode-1', new wp.customize.Notification( 'mycode-1', { message: 'My message 1' } ) );
</span><span class="cx" style="display: block; padding: 0 10px">                collection.render();
</span><span class="cx" style="display: block; padding: 0 10px">                items = collection.container.find( 'li' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( items.length, 1 );
-               equal( items.first().data( 'code' ), 'mycode-1' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( items.length, 1 );
+               assert.equal( items.first().data( 'code' ), 'mycode-1' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                collection.add( 'mycode-2', new wp.customize.Notification( 'mycode-2', {
</span><span class="cx" style="display: block; padding: 0 10px">                        message: 'My message 2',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -106,49 +106,49 @@
</span><span class="cx" style="display: block; padding: 0 10px">                } ) );
</span><span class="cx" style="display: block; padding: 0 10px">                collection.render();
</span><span class="cx" style="display: block; padding: 0 10px">                items = collection.container.find( 'li' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( items.length, 2 );
-               equal( items.first().data( 'code' ), 'mycode-2' );
-               equal( items.last().data( 'code' ), 'mycode-1' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( items.length, 2 );
+               assert.equal( items.first().data( 'code' ), 'mycode-2' );
+               assert.equal( items.last().data( 'code' ), 'mycode-1' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( items.first().find( '.notice-dismiss' ).length, 1 );
-               equal( items.last().find( '.notice-dismiss' ).length, 0 );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( items.first().find( '.notice-dismiss' ).length, 1 );
+               assert.equal( items.last().find( '.notice-dismiss' ).length, 0 );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                collection.remove( 'mycode-2' );
</span><span class="cx" style="display: block; padding: 0 10px">                collection.render();
</span><span class="cx" style="display: block; padding: 0 10px">                items = collection.container.find( 'li' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( items.length, 1 );
-               equal( items.first().data( 'code' ), 'mycode-1' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( items.length, 1 );
+               assert.equal( items.first().data( 'code' ), 'mycode-1' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                collection.remove( 'mycode-1' );
</span><span class="cx" style="display: block; padding: 0 10px">                collection.render();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( collection.container.is( ':hidden' ), 'Notifications area is hidden.' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( collection.container.is( ':hidden' ), 'Notifications area is hidden.' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Previewed Device' );
-       test( 'Previewed device defaults to desktop.', function () {
-               equal( wp.customize.previewedDevice.get(), 'desktop' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Previewed Device' );
+       QUnit.test( 'Previewed device defaults to desktop.', function( assert ) {
+               assert.equal( wp.customize.previewedDevice.get(), 'desktop' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Setting in Fixture' );
-       test( 'Setting has fixture value', function () {
-               equal( wp.customize( 'fixture-setting' )(), 'Lorem Ipsum' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Setting in Fixture' );
+       QUnit.test( 'Setting has fixture value', function( assert ) {
+               assert.equal( wp.customize( 'fixture-setting' )(), 'Lorem Ipsum' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Setting has notifications', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Setting has notifications', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var setting = wp.customize( 'fixture-setting' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( setting.notifications.extended( wp.customize.Values ) );
-               equal( wp.customize.Notification, setting.notifications.prototype.constructor.defaultConstructor );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( setting.notifications.extended( wp.customize.Values ) );
+               assert.equal( wp.customize.Notification, setting.notifications.prototype.constructor.defaultConstructor );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Setting has findControls method', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Setting has findControls method', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var controls, setting = wp.customize( 'fixture-setting' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( 'function', typeof setting.findControls );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( 'function', typeof setting.findControls );
</ins><span class="cx" style="display: block; padding: 0 10px">                 controls = setting.findControls();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( 1, controls.length );
-               equal( 'fixture-control', controls[0].id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( 1, controls.length );
+               assert.equal( 'fixture-control', controls[0].id );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Setting constructor object exists', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Setting constructor object exists', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 assert.ok( _.isObject( wp.customize.settingConstructor ) );
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Custom setting constructor is used', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Custom setting constructor is used', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var setting = wp.customize( 'fixture-setting-abbr' );
</span><span class="cx" style="display: block; padding: 0 10px">                assert.ok( setting.extended( wp.customize.settingConstructor.abbreviation ) );
</span><span class="cx" style="display: block; padding: 0 10px">                setting.set( 'usa' );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -155,20 +155,20 @@
</span><span class="cx" style="display: block; padding: 0 10px">                assert.equal( 'USA', setting.get() );
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Control in Fixture' );
-       test( 'Control exists', function () {
-               ok( wp.customize.control.has( 'fixture-control' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Control in Fixture' );
+       QUnit.test( 'Control exists', function( assert ) {
+               assert.ok( wp.customize.control.has( 'fixture-control' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control has the fixture setting', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control has the fixture setting', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control = wp.customize.control( 'fixture-control' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( control.setting(), 'Lorem Ipsum' );
-               equal( control.setting.id, 'fixture-setting' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( control.setting(), 'Lorem Ipsum' );
+               assert.equal( control.setting.id, 'fixture-setting' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control has the section fixture section ID', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control has the section fixture section ID', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control = wp.customize.control( 'fixture-control' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( control.section(), 'fixture-section' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( control.section(), 'fixture-section' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control has notifications', function ( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control has notifications', function ( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control = wp.customize.control( 'fixture-control' ), settingNotification, controlOnlyNotification, doneEmbedded;
</span><span class="cx" style="display: block; padding: 0 10px">                assert.ok( control.notifications.extended( wp.customize.Values ) );
</span><span class="cx" style="display: block; padding: 0 10px">                assert.equal( wp.customize.Notification, control.notifications.prototype.constructor.defaultConstructor );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -215,8 +215,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer control without associated settings' );
-       test( 'Control can be created without settings', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer control without associated settings' );
+       QUnit.test( 'Control can be created without settings', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control = new wp.customize.Control( 'settingless', {
</span><span class="cx" style="display: block; padding: 0 10px">                        params: {
</span><span class="cx" style="display: block; padding: 0 10px">                                content: jQuery( '<li class="settingless">Hello World</li>' ),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -224,79 +224,79 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize.control.add( control.id, control );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( control.deferred.embedded.state(), 'resolved' );
-               ok( null === control.setting );
-               ok( jQuery.isEmptyObject( control.settings ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( control.deferred.embedded.state(), 'resolved' );
+               assert.ok( null === control.setting );
+               assert.ok( jQuery.isEmptyObject( control.settings ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Begin sections.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Section in Fixture' );
-       test( 'Fixture section exists', function () {
-               ok( wp.customize.section.has( 'fixture-section' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Section in Fixture' );
+       QUnit.test( 'Fixture section exists', function( assert ) {
+               assert.ok( wp.customize.section.has( 'fixture-section' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture section has control among controls()', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture section has control among controls()', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var section = wp.customize.section( 'fixture-section' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( -1 !== _.pluck( section.controls(), 'id' ).indexOf( 'fixture-control' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( -1 !== _.pluck( section.controls(), 'id' ).indexOf( 'fixture-control' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture section has has expected panel', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture section has has expected panel', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var section = wp.customize.section( 'fixture-section' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( section.panel(), 'fixture-panel' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( section.panel(), 'fixture-panel' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Default Section with Template in Fixture' );
-       test( 'Fixture section exists', function () {
-               ok( wp.customize.section.has( 'fixture-section-default-templated' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Default Section with Template in Fixture' );
+       QUnit.test( 'Fixture section exists', function( assert ) {
+               assert.ok( wp.customize.section.has( 'fixture-section-default-templated' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture section has expected content', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture section has expected content', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-section-default-templated', section;
</span><span class="cx" style="display: block; padding: 0 10px">                section = wp.customize.section( id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! section.params.content );
-               ok( !! section.container );
-               ok( !! section.headContainer );
-               ok( !! section.contentContainer );
-               ok( section.container.has( section.headContainer ) );
-               ok( section.container.has( section.contentContainer ) );
-               ok( section.headContainer.is( '.control-section.control-section-default' ) );
-               ok( 1 === section.headContainer.find( '> .accordion-section-title' ).length );
-               ok( section.contentContainer.is( '.accordion-section-content' ) );
-               equal( section.headContainer.attr( 'aria-owns' ), section.contentContainer.attr( 'id' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! section.params.content );
+               assert.ok( !! section.container );
+               assert.ok( !! section.headContainer );
+               assert.ok( !! section.contentContainer );
+               assert.ok( section.container.has( section.headContainer ) );
+               assert.ok( section.container.has( section.contentContainer ) );
+               assert.ok( section.headContainer.is( '.control-section.control-section-default' ) );
+               assert.ok( 1 === section.headContainer.find( '> .accordion-section-title' ).length );
+               assert.ok( section.contentContainer.is( '.accordion-section-content' ) );
+               assert.equal( section.headContainer.attr( 'aria-owns' ), section.contentContainer.attr( 'id' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Custom Type (titleless) Section with Template in Fixture' );
-       test( 'Fixture section exists', function () {
-               ok( wp.customize.section.has( 'fixture-section-titleless-templated' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Custom Type (titleless) Section with Template in Fixture' );
+       QUnit.test( 'Fixture section exists', function( assert ) {
+               assert.ok( wp.customize.section.has( 'fixture-section-titleless-templated' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture section has expected content', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture section has expected content', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-section-titleless-templated', section;
</span><span class="cx" style="display: block; padding: 0 10px">                section = wp.customize.section( id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! section.params.content );
-               ok( !! section.container );
-               ok( !! section.headContainer );
-               ok( !! section.contentContainer );
-               ok( section.container.has( section.headContainer ) );
-               ok( section.container.has( section.contentContainer ) );
-               ok( section.container.is( '.control-section.control-section-titleless' ) );
-               ok( 0 === section.headContainer.find( '> .accordion-section-title' ).length );
-               ok( section.contentContainer.is( '.accordion-section-content' ) );
-               equal( section.headContainer.attr( 'aria-owns' ), section.contentContainer.attr( 'id' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! section.params.content );
+               assert.ok( !! section.container );
+               assert.ok( !! section.headContainer );
+               assert.ok( !! section.contentContainer );
+               assert.ok( section.container.has( section.headContainer ) );
+               assert.ok( section.container.has( section.contentContainer ) );
+               assert.ok( section.container.is( '.control-section.control-section-titleless' ) );
+               assert.ok( 0 === section.headContainer.find( '> .accordion-section-title' ).length );
+               assert.ok( section.contentContainer.is( '.accordion-section-content' ) );
+               assert.equal( section.headContainer.attr( 'aria-owns' ), section.contentContainer.attr( 'id' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Custom Type Section Lacking Specific Template' );
-       test( 'Fixture section has expected content', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Custom Type Section Lacking Specific Template' );
+       QUnit.test( 'Fixture section has expected content', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-section-reusing-default-template', section;
</span><span class="cx" style="display: block; padding: 0 10px">                section = wp.customize.section( id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! section.params.content );
-               ok( !! section.container );
-               ok( !! section.headContainer );
-               ok( !! section.contentContainer );
-               ok( section.container.has( section.headContainer ) );
-               ok( section.container.has( section.contentContainer ) );
-               ok( section.headContainer.is( '.control-section.control-section-' + section.params.type ) );
-               ok( 1 === section.headContainer.find( '> .accordion-section-title' ).length );
-               ok( section.contentContainer.is( '.accordion-section-content' ) );
-               equal( section.headContainer.attr( 'aria-owns' ), section.contentContainer.attr( 'id' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! section.params.content );
+               assert.ok( !! section.container );
+               assert.ok( !! section.headContainer );
+               assert.ok( !! section.contentContainer );
+               assert.ok( section.container.has( section.headContainer ) );
+               assert.ok( section.container.has( section.contentContainer ) );
+               assert.ok( section.headContainer.is( '.control-section.control-section-' + section.params.type ) );
+               assert.ok( 1 === section.headContainer.find( '> .accordion-section-title' ).length );
+               assert.ok( section.contentContainer.is( '.accordion-section-content' ) );
+               assert.equal( section.headContainer.attr( 'aria-owns' ), section.contentContainer.attr( 'id' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Section lacking any params' );
-       test( 'Fixture section has default params supplied', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Section lacking any params' );
+       QUnit.test( 'Fixture section has default params supplied', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-section-without-params', section, defaultParams;
</span><span class="cx" style="display: block; padding: 0 10px">                section = wp.customize.section( id );
</span><span class="cx" style="display: block; padding: 0 10px">                defaultParams = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -310,106 +310,106 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        customizeAction: ''
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px">                jQuery.each( defaultParams, function ( key, value ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        ok( 'undefined' !== typeof section.params[ key ] );
-                       equal( value, section.params[ key ] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.ok( 'undefined' !== typeof section.params[ key ] );
+                       assert.equal( value, section.params[ key ] );
</ins><span class="cx" style="display: block; padding: 0 10px">                 } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( _.isNumber( section.params.instanceNumber ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( _.isNumber( section.params.instanceNumber ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Begin panels.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Panel in Fixture' );
-       test( 'Fixture panel exists', function () {
-               ok( wp.customize.panel.has( 'fixture-panel' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Panel in Fixture' );
+       QUnit.test( 'Fixture panel exists', function( assert ) {
+               assert.ok( wp.customize.panel.has( 'fixture-panel' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture panel has content', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture panel has content', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var panel = wp.customize.panel( 'fixture-panel' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( !! panel.params.content );
-               ok( !! panel.container );
-               ok( !! panel.headContainer );
-               ok( !! panel.contentContainer );
-               ok( panel.container.has( panel.headContainer ) );
-               ok( panel.container.has( panel.contentContainer ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( !! panel.params.content );
+               assert.ok( !! panel.container );
+               assert.ok( !! panel.headContainer );
+               assert.ok( !! panel.contentContainer );
+               assert.ok( panel.container.has( panel.headContainer ) );
+               assert.ok( panel.container.has( panel.contentContainer ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture panel has section among its sections()', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture panel has section among its sections()', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var panel = wp.customize.panel( 'fixture-panel' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( -1 !== _.pluck( panel.sections(), 'id' ).indexOf( 'fixture-section' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( -1 !== _.pluck( panel.sections(), 'id' ).indexOf( 'fixture-section' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Panel is not expanded by default', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Panel is not expanded by default', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var panel = wp.customize.panel( 'fixture-panel' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! panel.expanded() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! panel.expanded() );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Panel is not expanded by default', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Panel is not expanded by default', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var panel = wp.customize.panel( 'fixture-panel' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! panel.expanded() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! panel.expanded() );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Focusing on a control will expand the panel and section', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Focusing on a control will expand the panel and section', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var panel, section, control;
</span><span class="cx" style="display: block; padding: 0 10px">                panel = wp.customize.panel( 'fixture-panel' );
</span><span class="cx" style="display: block; padding: 0 10px">                section = wp.customize.section( 'fixture-section' );
</span><span class="cx" style="display: block; padding: 0 10px">                control = wp.customize.control( 'fixture-control' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! panel.expanded() );
-               ok( ! section.expanded() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! panel.expanded() );
+               assert.ok( ! section.expanded() );
</ins><span class="cx" style="display: block; padding: 0 10px">                 control.focus();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( section.expanded() );
-               ok( panel.expanded() );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( section.expanded() );
+               assert.ok( panel.expanded() );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Default Panel with Template in Fixture' );
-       test( 'Fixture section exists', function () {
-               ok( wp.customize.panel.has( 'fixture-panel-default-templated' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Default Panel with Template in Fixture' );
+       QUnit.test( 'Fixture section exists', function( assert ) {
+               assert.ok( wp.customize.panel.has( 'fixture-panel-default-templated' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture panel has expected content', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture panel has expected content', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-panel-default-templated', panel;
</span><span class="cx" style="display: block; padding: 0 10px">                panel = wp.customize.panel( id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! panel.params.content );
-               ok( !! panel.container );
-               ok( !! panel.headContainer );
-               ok( !! panel.contentContainer );
-               ok( panel.container.has( panel.headContainer ) );
-               ok( panel.container.has( panel.contentContainer ) );
-               ok( panel.headContainer.is( '.control-panel.control-panel-default' ) );
-               ok( 1 === panel.headContainer.find( '> .accordion-section-title' ).length );
-               ok( panel.contentContainer.is( '.control-panel-content' ) );
-               equal( panel.headContainer.attr( 'aria-owns' ), panel.contentContainer.attr( 'id' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! panel.params.content );
+               assert.ok( !! panel.container );
+               assert.ok( !! panel.headContainer );
+               assert.ok( !! panel.contentContainer );
+               assert.ok( panel.container.has( panel.headContainer ) );
+               assert.ok( panel.container.has( panel.contentContainer ) );
+               assert.ok( panel.headContainer.is( '.control-panel.control-panel-default' ) );
+               assert.ok( 1 === panel.headContainer.find( '> .accordion-section-title' ).length );
+               assert.ok( panel.contentContainer.is( '.control-panel-content' ) );
+               assert.equal( panel.headContainer.attr( 'aria-owns' ), panel.contentContainer.attr( 'id' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Custom Type Panel (titleless) with Template in Fixture' );
-       test( 'Fixture panel exists', function () {
-               ok( wp.customize.panel.has( 'fixture-panel-titleless-templated' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Custom Type Panel (titleless) with Template in Fixture' );
+       QUnit.test( 'Fixture panel exists', function( assert ) {
+               assert.ok( wp.customize.panel.has( 'fixture-panel-titleless-templated' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Fixture panel has expected content', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Fixture panel has expected content', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-panel-titleless-templated', panel;
</span><span class="cx" style="display: block; padding: 0 10px">                panel = wp.customize.panel( id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! panel.params.content );
-               ok( !! panel.container );
-               ok( !! panel.headContainer );
-               ok( !! panel.contentContainer );
-               ok( panel.container.has( panel.headContainer ) );
-               ok( panel.container.has( panel.contentContainer ) );
-               ok( panel.headContainer.is( '.control-panel.control-panel-titleless' ) );
-               ok( 0 === panel.headContainer.find( '> .accordion-section-title' ).length );
-               ok( panel.contentContainer.is( '.control-panel-content' ) );
-               equal( panel.headContainer.attr( 'aria-owns' ), panel.contentContainer.attr( 'id' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! panel.params.content );
+               assert.ok( !! panel.container );
+               assert.ok( !! panel.headContainer );
+               assert.ok( !! panel.contentContainer );
+               assert.ok( panel.container.has( panel.headContainer ) );
+               assert.ok( panel.container.has( panel.contentContainer ) );
+               assert.ok( panel.headContainer.is( '.control-panel.control-panel-titleless' ) );
+               assert.ok( 0 === panel.headContainer.find( '> .accordion-section-title' ).length );
+               assert.ok( panel.contentContainer.is( '.control-panel-content' ) );
+               assert.equal( panel.headContainer.attr( 'aria-owns' ), panel.contentContainer.attr( 'id' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Custom Type Panel Lacking Specific Template' );
-       test( 'Fixture panel has expected content', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Custom Type Panel Lacking Specific Template' );
+       QUnit.test( 'Fixture panel has expected content', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-panel-reusing-default-template', panel;
</span><span class="cx" style="display: block; padding: 0 10px">                panel = wp.customize.panel( id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! panel.params.content );
-               ok( !! panel.container );
-               ok( !! panel.headContainer );
-               ok( !! panel.contentContainer );
-               ok( panel.container.has( panel.headContainer ) );
-               ok( panel.container.has( panel.contentContainer ) );
-               ok( panel.headContainer.is( '.control-panel.control-panel-' + panel.params.type ) );
-               ok( 1 === panel.headContainer.find( '> .accordion-section-title' ).length );
-               ok( panel.contentContainer.is( '.control-panel-content' ) );
-               equal( panel.headContainer.attr( 'aria-owns' ), panel.contentContainer.attr( 'id' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! panel.params.content );
+               assert.ok( !! panel.container );
+               assert.ok( !! panel.headContainer );
+               assert.ok( !! panel.contentContainer );
+               assert.ok( panel.container.has( panel.headContainer ) );
+               assert.ok( panel.container.has( panel.contentContainer ) );
+               assert.ok( panel.headContainer.is( '.control-panel.control-panel-' + panel.params.type ) );
+               assert.ok( 1 === panel.headContainer.find( '> .accordion-section-title' ).length );
+               assert.ok( panel.contentContainer.is( '.control-panel-content' ) );
+               assert.equal( panel.headContainer.attr( 'aria-owns' ), panel.contentContainer.attr( 'id' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customizer Panel lacking any params' );
-       test( 'Fixture panel has default params supplied', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customizer Panel lacking any params' );
+       QUnit.test( 'Fixture panel has default params supplied', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var id = 'fixture-panel-without-params', panel, defaultParams;
</span><span class="cx" style="display: block; padding: 0 10px">                panel = wp.customize.panel( id );
</span><span class="cx" style="display: block; padding: 0 10px">                defaultParams = {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -421,17 +421,17 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        active: true
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px">                jQuery.each( defaultParams, function ( key, value ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        ok( 'undefined' !== typeof panel.params[ key ] );
-                       equal( value, panel.params[ key ] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.ok( 'undefined' !== typeof panel.params[ key ] );
+                       assert.equal( value, panel.params[ key ] );
</ins><span class="cx" style="display: block; padding: 0 10px">                 } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( _.isNumber( panel.params.instanceNumber ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( _.isNumber( panel.params.instanceNumber ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Dynamically-created Customizer Setting Model' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Dynamically-created Customizer Setting Model' );
</ins><span class="cx" style="display: block; padding: 0 10px">         settingId = 'new_blogname';
</span><span class="cx" style="display: block; padding: 0 10px">        settingValue = 'Hello World';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Create a new setting', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Create a new setting', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 mockSetting = wp.customize.create(
</span><span class="cx" style="display: block; padding: 0 10px">                        settingId,
</span><span class="cx" style="display: block; padding: 0 10px">                        settingId,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -441,11 +441,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                previewer: wp.customize.previewer
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mockSetting(), settingValue );
-               equal( mockSetting.id, settingId );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mockSetting(), settingValue );
+               assert.equal( mockSetting.id, settingId );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Dynamically-created Customizer Section Model' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Dynamically-created Customizer Section Model' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        sectionId = 'mock_title_tagline';
</span><span class="cx" style="display: block; padding: 0 10px">        sectionContent = '<li id="accordion-section-mock_title_tagline" class="accordion-section control-section control-section-default"> <h3 class="accordion-section-title" tabindex="0"> Section Fixture <span class="screen-reader-text">Press return or enter to open</span> </h3> <ul class="accordion-section-content"> <li class="customize-section-description-container"> <div class="customize-section-title"> <button class="customize-section-back" tabindex="-1"> <span class="screen-reader-text">Back</span> </button> <h3> <span class="customize-action">Customizing &#9656; Fixture Panel</span> Section Fixture </h3> </div> </li> </ul> </li>';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -467,27 +467,27 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        testCustomizerModel( mockSection, sectionExpectedValues );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Section has been embedded', function () {
-               equal( mockSection.deferred.embedded.state(), 'resolved' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Section has been embedded', function( assert ) {
+               assert.equal( mockSection.deferred.embedded.state(), 'resolved' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        wp.customize.section.add( sectionId, mockSection );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Section instance added to the wp.customize.section object', function () {
-               ok( wp.customize.section.has( sectionId ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Section instance added to the wp.customize.section object', function( assert ) {
+               assert.ok( wp.customize.section.has( sectionId ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        sectionInstance = wp.customize.section( sectionId );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Section instance has right content when accessed from wp.customize.section()', function () {
-               equal( sectionInstance.params.content, sectionContent );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Section instance has right content when accessed from wp.customize.section()', function( assert ) {
+               assert.equal( sectionInstance.params.content, sectionContent );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Section instance has no children yet', function () {
-               equal( sectionInstance.controls().length, 0 );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Section instance has no children yet', function( assert ) {
+               assert.equal( sectionInstance.controls().length, 0 );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Dynamically-created Customizer Control Model' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Dynamically-created Customizer Control Model' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        controlId = 'new_blogname';
</span><span class="cx" style="display: block; padding: 0 10px">        controlLabel = 'Site Title';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -520,43 +520,43 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        testCustomizerModel( mockControl, controlExpectedValues );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control instance does not yet belong to a section.', function () {
-               equal( mockControl.section(), undefined );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control instance does not yet belong to a section.', function( assert ) {
+               assert.equal( mockControl.section(), undefined );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control has not been embedded yet', function () {
-               equal( mockControl.deferred.embedded.state(), 'pending' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control has not been embedded yet', function( assert ) {
+               assert.equal( mockControl.deferred.embedded.state(), 'pending' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control instance has the right selector.', function () {
-               equal( mockControl.selector, '#customize-control-new_blogname' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control instance has the right selector.', function( assert ) {
+               assert.equal( mockControl.selector, '#customize-control-new_blogname' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        wp.customize.control.add( controlId, mockControl );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control instance was added to the control class.', function () {
-               ok( wp.customize.control.has( controlId ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control instance was added to the control class.', function( assert ) {
+               assert.ok( wp.customize.control.has( controlId ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        mockControlInstance = wp.customize.control( controlId );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control instance has the right id when accessed from api.control().', function () {
-               equal( mockControlInstance.id, controlId );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control instance has the right id when accessed from api.control().', function( assert ) {
+               assert.equal( mockControlInstance.id, controlId );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control section can be set as expected', function () {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control section can be set as expected', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 mockControl.section( mockSection.id );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mockControl.section(), mockSection.id );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mockControl.section(), mockSection.id );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Associating a control with a section allows it to be embedded', function () {
-               equal( mockControl.deferred.embedded.state(), 'resolved' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Associating a control with a section allows it to be embedded', function( assert ) {
+               assert.equal( mockControl.deferred.embedded.state(), 'resolved' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Control is now available on section.controls()', function () {
-               equal( sectionInstance.controls().length, 1 );
-               equal( sectionInstance.controls()[0], mockControl );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Control is now available on section.controls()', function( assert ) {
+               assert.equal( sectionInstance.controls().length, 1 );
+               assert.equal( sectionInstance.controls()[0], mockControl );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Dynamically-created Customizer Panel Model' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Dynamically-created Customizer Panel Model' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        panelId = 'mockPanelId';
</span><span class="cx" style="display: block; padding: 0 10px">        panelTitle = 'Mock Panel Title';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -584,49 +584,49 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        testCustomizerModel( mockPanel, panelExpectedValues );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'Panel instance is not contextuallyActive', function () {
-               equal( mockPanel.isContextuallyActive(), false );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'Panel instance is not contextuallyActive', function( assert ) {
+               assert.equal( mockPanel.isContextuallyActive(), false );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Test wp.customize.findControlsForSettings' );
-       test( 'findControlsForSettings(blogname)', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Test wp.customize.findControlsForSettings' );
+       QUnit.test( 'findControlsForSettings(blogname)', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var controlsForSettings, settingId = 'fixture-setting', controlId = 'fixture-control';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( wp.customize.control.has( controlId ) );
-               ok( wp.customize.has( settingId ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( wp.customize.control.has( controlId ) );
+               assert.ok( wp.customize.has( settingId ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 controlsForSettings = wp.customize.findControlsForSettings( [ settingId ] );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( _.isObject( controlsForSettings ), 'Response is object' );
-               ok( _.isArray( controlsForSettings['fixture-setting'] ), 'Response has a fixture-setting array' );
-               equal( 1, controlsForSettings['fixture-setting'].length );
-               equal( wp.customize.control( controlId ), controlsForSettings['fixture-setting'][0] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( _.isObject( controlsForSettings ), 'Response is object' );
+               assert.ok( _.isArray( controlsForSettings['fixture-setting'] ), 'Response has a fixture-setting array' );
+               assert.equal( 1, controlsForSettings['fixture-setting'].length );
+               assert.equal( wp.customize.control( controlId ), controlsForSettings['fixture-setting'][0] );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Controls wp.customize.dirtyValues' );
-       test( 'dirtyValues() returns expected values', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Controls wp.customize.dirtyValues' );
+       QUnit.test( 'dirtyValues() returns expected values', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 wp.customize.state( 'changesetStatus' ).set( 'auto-draft' );
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize.each( function( setting ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        setting._dirty = false;
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( _.isEmpty( wp.customize.dirtyValues() ) );
-               ok( _.isEmpty( wp.customize.dirtyValues( { unsaved: false } ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( _.isEmpty( wp.customize.dirtyValues() ) );
+               assert.ok( _.isEmpty( wp.customize.dirtyValues( { unsaved: false } ) ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize( 'fixture-setting' )._dirty = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! _.isEmpty( wp.customize.dirtyValues() ) );
-               ok( _.isEmpty( wp.customize.dirtyValues( { unsaved: true } ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! _.isEmpty( wp.customize.dirtyValues() ) );
+               assert.ok( _.isEmpty( wp.customize.dirtyValues( { unsaved: true } ) ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize( 'fixture-setting' ).set( 'Modified' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! _.isEmpty( wp.customize.dirtyValues() ) );
-               ok( ! _.isEmpty( wp.customize.dirtyValues( { unsaved: true } ) ) );
-               equal( 'Modified', wp.customize.dirtyValues()['fixture-setting'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! _.isEmpty( wp.customize.dirtyValues() ) );
+               assert.ok( ! _.isEmpty( wp.customize.dirtyValues( { unsaved: true } ) ) );
+               assert.equal( 'Modified', wp.customize.dirtyValues()['fixture-setting'] );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // When the changeset does not exist, all dirty settings are necessarily unsaved.
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize.state( 'changesetStatus' ).set( '' );
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize( 'fixture-setting' )._dirty = true;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! _.isEmpty( wp.customize.dirtyValues() ) );
-               ok( ! _.isEmpty( wp.customize.dirtyValues( { unsaved: true } ) ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! _.isEmpty( wp.customize.dirtyValues() ) );
+               assert.ok( ! _.isEmpty( wp.customize.dirtyValues( { unsaved: true } ) ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Controls: wp.customize.requestChangesetUpdate()' );
-       test( 'requestChangesetUpdate makes request and returns promise', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Controls: wp.customize.requestChangesetUpdate()' );
+       QUnit.test( 'requestChangesetUpdate makes request and returns promise', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var request, originalBeforeSetup = jQuery.ajaxSettings.beforeSend;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                jQuery.ajaxSetup( {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -677,8 +677,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                } );
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Utils: wp.customize.utils.getRemainingTime()' );
-       test( 'utils.getRemainingTime calculates time correctly', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Utils: wp.customize.utils.getRemainingTime()' );
+       QUnit.test( 'utils.getRemainingTime calculates time correctly', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var datetime = '2599-08-06 12:12:13', timeRemaining, timeRemainingWithDateInstance, timeRemaingingWithTimestamp;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                timeRemaining = wp.customize.utils.getRemainingTime( datetime );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -692,15 +692,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">                assert.deepEqual( timeRemaining, timeRemaingingWithTimestamp );
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Utils: wp.customize.utils.getCurrentTimestamp()' );
-       test( 'utils.getCurrentTimestamp returns timestamp', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Utils: wp.customize.utils.getCurrentTimestamp()' );
+       QUnit.test( 'utils.getCurrentTimestamp returns timestamp', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var currentTimeStamp;
</span><span class="cx" style="display: block; padding: 0 10px">                currentTimeStamp = wp.customize.utils.getCurrentTimestamp();
</span><span class="cx" style="display: block; padding: 0 10px">                assert.equal( typeof currentTimeStamp, 'number' );
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Controls: wp.customize.DateTimeControl' );
-       test( 'Test DateTimeControl creation and its methods', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Controls: wp.customize.DateTimeControl' );
+       QUnit.test( 'Test DateTimeControl creation and its methods', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control, controlId = 'date_time', section, sectionId = 'fixture-section',
</span><span class="cx" style="display: block; padding: 0 10px">                        datetime = '2599-08-06 18:12:13', dateTimeArray, dateTimeArrayInampm, timeString,
</span><span class="cx" style="display: block; padding: 0 10px">                        day, year, month, minute, meridian, hour;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -864,8 +864,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize.control.remove( controlId );
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Sections: wp.customize.OuterSection' );
-       test( 'Test OuterSection', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Sections: wp.customize.OuterSection' );
+       QUnit.test( 'Test OuterSection', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var section, sectionId = 'test_outer_section', body = jQuery( 'body' ),
</span><span class="cx" style="display: block; padding: 0 10px">                        defaultSection, defaultSectionId = 'fixture-section';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -899,8 +899,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                wp.customize.section.remove( sectionId );
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Controls: PreviewLinkControl' );
-       test( 'Test PreviewLinkControl creation and its methods', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Controls: PreviewLinkControl' );
+       QUnit.test( 'Test PreviewLinkControl creation and its methods', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var section, sectionId = 'publish_settings', newLink;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                section = wp.customize.section( sectionId );
</span></span></pre></div>
<a id="trunktestsqunitwpadminjscustomizeheaderjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/customize-header.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/customize-header.js 2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/customize-header.js   2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,48 +1,48 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /* global wp, sinon */
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery( function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module('Custom Header: ChoiceList', {
-               setup: function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module('Custom Header: ChoiceList', {
+               beforeEach: function() {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp.customize.HeaderTool.currentHeader = new wp.customize.HeaderTool.ImageModel();
</span><span class="cx" style="display: block; padding: 0 10px">                        this.apiStub = sinon.stub(wp.customize, 'get').returns('foo');
</span><span class="cx" style="display: block; padding: 0 10px">                        this.choiceList = new wp.customize.HeaderTool.ChoiceList();
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                teardown: function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         afterEach: function() {
</ins><span class="cx" style="display: block; padding: 0 10px">                         this.apiStub.restore();
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should parse _wpCustomizeHeader.uploads into itself', function() {
-               equal(this.choiceList.length, 4);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should parse _wpCustomizeHeader.uploads into itself', function( assert ) {
+               assert.equal(this.choiceList.length, 4);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should sort by newest first', function() {
-               equal(this.choiceList.at(2).get('header').attachment_id, 1);
-               equal(this.choiceList.first().get('header').attachment_id, 3);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should sort by newest first', function( assert ) {
+               assert.equal(this.choiceList.at(2).get('header').attachment_id, 1);
+               assert.equal(this.choiceList.first().get('header').attachment_id, 3);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module('Custom Header: DefaultsList', {
-               setup: function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module('Custom Header: DefaultsList', {
+               beforeEach: function() {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp.customize.HeaderTool.currentHeader = new wp.customize.HeaderTool.ImageModel();
</span><span class="cx" style="display: block; padding: 0 10px">                        this.apiStub = sinon.stub(wp.customize, 'get').returns('foo');
</span><span class="cx" style="display: block; padding: 0 10px">                        this.choiceList = new wp.customize.HeaderTool.DefaultsList();
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                teardown: function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         afterEach: function() {
</ins><span class="cx" style="display: block; padding: 0 10px">                         this.apiStub.restore();
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('it should parse _wpCustomizeHeader.defaults into itself', function() {
-               equal(this.choiceList.length, 4);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('it should parse _wpCustomizeHeader.defaults into itself', function( assert ) {
+               assert.equal(this.choiceList.length, 4);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('it parses the default image names', function() {
-               equal(this.choiceList.first().get('header').defaultName, 'circle');
-               equal(this.choiceList.at(2).get('header').defaultName, 'star');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('it parses the default image names', function( assert ) {
+               assert.equal(this.choiceList.first().get('header').defaultName, 'circle');
+               assert.equal(this.choiceList.at(2).get('header').defaultName, 'star');
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module('Custom Header: HeaderImage shouldBeCropped()', {
-               setup: function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module('Custom Header: HeaderImage shouldBeCropped()', {
+               beforeEach: function() {
</ins><span class="cx" style="display: block; padding: 0 10px">                         wp.customize.HeaderTool.currentHeader = new wp.customize.HeaderTool.ImageModel();
</span><span class="cx" style="display: block; padding: 0 10px">                        this.model = new wp.customize.HeaderTool.ImageModel();
</span><span class="cx" style="display: block; padding: 0 10px">                        this.model.set({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -52,7 +52,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should not be cropped when the theme does not support flex width or height and the image has the same dimensions of the theme image', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should not be cropped when the theme does not support flex width or height and the image has the same dimensions of the theme image', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.model.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexWidth: false,
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexHeight: false,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -60,10 +60,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        imageHeight: 200
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal(this.model.shouldBeCropped(), false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal(this.model.shouldBeCropped(), false);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should be cropped when the image has the same dimensions of the theme image', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should be cropped when the image has the same dimensions of the theme image', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.model.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexWidth: false,
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexHeight: false,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -71,10 +71,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        imageHeight: 400
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal(this.model.shouldBeCropped(), true);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal(this.model.shouldBeCropped(), true);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should not be cropped when the theme only supports flex width and the image has the same height as the theme image', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should not be cropped when the theme only supports flex width and the image has the same height as the theme image', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.model.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexWidth: true,
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexHeight: false,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -82,10 +82,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        imageHeight: 200
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal(this.model.shouldBeCropped(), false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal(this.model.shouldBeCropped(), false);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should not be cropped when the theme only supports flex height and the image has the same width as the theme image', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should not be cropped when the theme only supports flex height and the image has the same width as the theme image', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.model.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexWidth: false,
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexHeight: true,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -93,10 +93,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        imageHeight: 600
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal(this.model.shouldBeCropped(), false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal(this.model.shouldBeCropped(), false);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should not be cropped when the theme supports flex height AND width', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should not be cropped when the theme supports flex height AND width', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.model.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexWidth: true,
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexHeight: true,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -104,10 +104,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        imageHeight: 8600
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal(this.model.shouldBeCropped(), false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal(this.model.shouldBeCropped(), false);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should not be cropped when the image width is smaller than or equal to theme width', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should not be cropped when the image width is smaller than or equal to theme width', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.model.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexWidth: false,
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexHeight: false,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -115,10 +115,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        imageHeight: 100
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal(this.model.shouldBeCropped(), false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal(this.model.shouldBeCropped(), false);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test('should not be cropped when the image width is smaller than or equal to theme width, theme supports flex height and width', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('should not be cropped when the image width is smaller than or equal to theme width, theme supports flex height and width', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 this.model.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexWidth: true,
</span><span class="cx" style="display: block; padding: 0 10px">                        themeFlexHeight: true,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -126,6 +126,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        imageHeight: 100
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal(this.model.shouldBeCropped(), false);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal(this.model.shouldBeCropped(), false);
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> });
</span></span></pre></div>
<a id="trunktestsqunitwpadminjscustomizenavmenusjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/customize-nav-menus.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/customize-nav-menus.js      2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/customize-nav-menus.js        2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,16 +1,16 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /* global wp */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery( window ).load( function (){
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+jQuery( window ).load( function() {
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        var api = wp.customize,
</span><span class="cx" style="display: block; padding: 0 10px">                primaryMenuId = 3,
</span><span class="cx" style="display: block; padding: 0 10px">                socialMenuId = 2;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Nav Menus' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Nav Menus' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Generate 20 IDs and verify they are all unique.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'generatePlaceholderAutoIncrementId generates unique IDs', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'generatePlaceholderAutoIncrementId generates unique IDs', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var testIterations = 20,
</span><span class="cx" style="display: block; padding: 0 10px">                        ids = [ api.Menus.generatePlaceholderAutoIncrementId() ];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -17,7 +17,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                while ( testIterations ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        var placeholderID = api.Menus.generatePlaceholderAutoIncrementId();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        ok( -1 === ids.indexOf( placeholderID ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.ok( -1 === ids.indexOf( placeholderID ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                         ids.push( placeholderID );
</span><span class="cx" style="display: block; padding: 0 10px">                        testIterations -= 1;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,86 +24,86 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'it should parse _wpCustomizeMenusSettings.defaults into itself', function() {
-               deepEqual( window._wpCustomizeNavMenusSettings, api.Menus.data );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'it should parse _wpCustomizeMenusSettings.defaults into itself', function( assert ) {
+               assert.deepEqual( window._wpCustomizeNavMenusSettings, api.Menus.data );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'empty menus should have no Menu Item Controls', function() {
-               ok( 0 === wp.customize.Menus.getMenuControl( socialMenuId ).getMenuItemControls().length, 'empty menus' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'empty menus should have no Menu Item Controls', function( assert ) {
+               assert.ok( 0 === wp.customize.Menus.getMenuControl( socialMenuId ).getMenuItemControls().length, 'empty menus' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'populated menus should have no Menu Item Controls', function() {
-               ok( 0 !== wp.customize.Menus.getMenuControl( primaryMenuId ).getMenuItemControls().length, 'non-empty menus' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'populated menus should have no Menu Item Controls', function( assert ) {
+               assert.ok( 0 !== wp.customize.Menus.getMenuControl( primaryMenuId ).getMenuItemControls().length, 'non-empty menus' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Add tests for api.Menus.AvailableMenuItemsPanelView
</span><span class="cx" style="display: block; padding: 0 10px">        // (and api.Menus.AvailableItemCollection, api.Menus.AvailableItemModel).
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'there is a properly configured MenusPanel', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'there is a properly configured MenusPanel', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var panel, sections;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                panel = api.panel( 'nav_menus' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( panel );
-               ok( panel.extended( api.Menus.MenusPanel ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( panel );
+               assert.ok( panel.extended( api.Menus.MenusPanel ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                sections = panel.sections();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( 'menu_locations' === sections[0].id, 'first section is menu_locations' );
-               ok( sections[1].extended( api.Menus.MenuSection ), 'second section is MenuSection' );
-               ok( sections[ sections.length - 1 ].extended( api.Menus.NewMenuSection ), 'last section is NewMenuSection' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( 'menu_locations' === sections[0].id, 'first section is menu_locations' );
+               assert.ok( sections[1].extended( api.Menus.MenuSection ), 'second section is MenuSection' );
+               assert.ok( sections[ sections.length - 1 ].extended( api.Menus.NewMenuSection ), 'last section is NewMenuSection' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Add more tests for api.Menus.MenusPanel behaviors.
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'there an expected MenuSection for the primary menu', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'there an expected MenuSection for the primary menu', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var section, controls, lastControl;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                section = api.section( 'nav_menu[' + primaryMenuId + ']' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( section, 'section exists' );
-               ok( section.extended( api.Menus.MenuSection ), 'section is a api.Menus.MenuSection' );
-               ok( section.deferred.initSortables, 'has section.deferred.initSortables' );
-               ok( section.active(), 'section active() is true' );
-               ok( section.active.set( false ).get(), 'section active() cannot be set false' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( section, 'section exists' );
+               assert.ok( section.extended( api.Menus.MenuSection ), 'section is a api.Menus.MenuSection' );
+               assert.ok( section.deferred.initSortables, 'has section.deferred.initSortables' );
+               assert.ok( section.active(), 'section active() is true' );
+               assert.ok( section.active.set( false ).get(), 'section active() cannot be set false' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                controls = section.controls();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( controls[0].extended( api.Menus.MenuNameControl ), 'first control in menu section is MenuNameControl' );
-               ok( controls[1].extended( api.Menus.MenuItemControl ), 'second control in menu section is MenuItemControl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( controls[0].extended( api.Menus.MenuNameControl ), 'first control in menu section is MenuNameControl' );
+               assert.ok( controls[1].extended( api.Menus.MenuItemControl ), 'second control in menu section is MenuItemControl' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                lastControl = controls[ controls.length - 1 ];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( lastControl.extended( api.Control ), 'last control in menu section is a base Control' );
-               ok( lastControl.params.templateId === 'nav-menu-delete-button', 'last control in menu section has a delete-button template' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( lastControl.extended( api.Control ), 'last control in menu section is a base Control' );
+               assert.ok( lastControl.params.templateId === 'nav-menu-delete-button', 'last control in menu section has a delete-button template' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Add more tests for api.Menus.MenuSection behaviors.
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'changing a MenuNameControl change the corresponding menu value', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'changing a MenuNameControl change the corresponding menu value', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var section, control;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                section = api.section( 'nav_menu[' + primaryMenuId + ']' );
</span><span class="cx" style="display: block; padding: 0 10px">                control = section.controls()[0];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( control.extended( api.Menus.MenuNameControl ), 'control is a MenuNameControl' );
-               equal( control.setting().name, 'Primary menu' );
-               ok( ! control.setting._dirty );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( control.extended( api.Menus.MenuNameControl ), 'control is a MenuNameControl' );
+               assert.equal( control.setting().name, 'Primary menu' );
+               assert.ok( ! control.setting._dirty );
</ins><span class="cx" style="display: block; padding: 0 10px">                 control.container.find( 'input[type=text]:first' ).val( 'Main menu' ).trigger( 'change' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( control.setting().name, 'Main menu' );
-               ok( control.setting._dirty );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( control.setting().name, 'Main menu' );
+               assert.ok( control.setting._dirty );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Add more tests for api.Menus.MenuNameControl
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'manipulating a MenuItemControl works', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'manipulating a MenuItemControl works', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var section, control, value;
</span><span class="cx" style="display: block; padding: 0 10px">                section = api.section( 'nav_menu[' + primaryMenuId + ']' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( section );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( section );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                control = section.controls()[1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( control.extended( api.Menus.MenuItemControl ), 'control is a MenuItemControl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( control.extended( api.Menus.MenuItemControl ), 'control is a MenuItemControl' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                control.actuallyEmbed();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                control.container.find( '.edit-menu-item-title' ).val( 'Hello World' ).trigger( 'change' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( control.setting().title, 'Hello World' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( control.setting().title, 'Hello World' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 value = _.clone( control.setting() );
</span><span class="cx" style="display: block; padding: 0 10px">                value.title = 'Hola Mundo';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( control.container.find( '.edit-menu-item-title' ).val(), 'Hello World' );
-               equal( value.position, 1 );
-               equal( control.priority(), 1 );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( control.container.find( '.edit-menu-item-title' ).val(), 'Hello World' );
+               assert.equal( value.position, 1 );
+               assert.equal( control.priority(), 1 );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // @todo Test control.moveDown().
</span><span class="cx" style="display: block; padding: 0 10px">        } );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -118,16 +118,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Add tests for api.Menus.focusMenuItemControl.
</span><span class="cx" style="display: block; padding: 0 10px">        // @todo Add tests for api.Menus.createNavMenu.
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'api.Menus.getMenuControl() should return the expected control', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'api.Menus.getMenuControl() should return the expected control', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control = api.Menus.getMenuControl( primaryMenuId );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( !! control, 'control is returned' );
-               ok( control.extended( api.Menus.MenuControl ), 'control is a MenuControl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( !! control, 'control is returned' );
+               assert.ok( control.extended( api.Menus.MenuControl ), 'control is a MenuControl' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'api.Menus.getMenuItemControl() should return the expected control', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'api.Menus.getMenuItemControl() should return the expected control', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control = api.Menus.getMenuItemControl( 2000 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( !! control, 'control is returned' );
-               ok( control.extended( api.Menus.MenuItemControl ), 'control is a MenuItemControl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( !! control, 'control is returned' );
+               assert.ok( control.extended( api.Menus.MenuItemControl ), 'control is a MenuItemControl' );
</ins><span class="cx" style="display: block; padding: 0 10px">         } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> } );
</span></span></pre></div>
<a id="trunktestsqunitwpadminjscustomizewidgetsjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/customize-widgets.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/customize-widgets.js        2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/customize-widgets.js  2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -3,25 +3,25 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        var api = wp.customize, $ = jQuery;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Customize Widgets' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Customize Widgets' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'fixtures should be present', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'fixtures should be present', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var widgetControl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( api.panel( 'widgets' ) );
-               ok( api.section( 'sidebar-widgets-sidebar-1' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( api.panel( 'widgets' ) );
+               assert.ok( api.section( 'sidebar-widgets-sidebar-1' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 widgetControl = api.control( 'widget_search[2]' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( widgetControl );
-               ok( api.control( 'sidebars_widgets[sidebar-1]' ) );
-               ok( api( 'widget_search[2]' ) );
-               ok( api( 'sidebars_widgets[sidebar-1]' ) );
-               ok( widgetControl.params.content );
-               ok( widgetControl.params.widget_control );
-               ok( widgetControl.params.widget_content );
-               ok( widgetControl.params.widget_id );
-               ok( widgetControl.params.widget_id_base );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( widgetControl );
+               assert.ok( api.control( 'sidebars_widgets[sidebar-1]' ) );
+               assert.ok( api( 'widget_search[2]' ) );
+               assert.ok( api( 'sidebars_widgets[sidebar-1]' ) );
+               assert.ok( widgetControl.params.content );
+               assert.ok( widgetControl.params.widget_control );
+               assert.ok( widgetControl.params.widget_content );
+               assert.ok( widgetControl.params.widget_id );
+               assert.ok( widgetControl.params.widget_id_base );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'widget contents should embed (with widget-added event) when section and control expand', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'widget contents should embed (with widget-added event) when section and control expand', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var control, section, widgetAddedEvent = null, widgetControlRootElement = null;
</span><span class="cx" style="display: block; padding: 0 10px">                control = api.control( 'widget_search[2]' );
</span><span class="cx" style="display: block; padding: 0 10px">                section = api.section( 'sidebar-widgets-sidebar-1' );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -31,8 +31,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        widgetControlRootElement = widgetElement;
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! section.expanded() );
-               ok( 0 === control.container.find( '> .widget' ).length );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! section.expanded() );
+               assert.ok( 0 === control.container.find( '> .widget' ).length );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Preview sets the active state.
</span><span class="cx" style="display: block; padding: 0 10px">                section.active.set( true );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -40,32 +40,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">                api.control( 'sidebars_widgets[sidebar-1]' ).active.set( true );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                section.expand();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ! widgetAddedEvent, 'expected widget added event not fired' );
-               ok( 1 === control.container.find( '> .widget' ).length, 'expected there to be one .widget element in the container' );
-               ok( 0 === control.container.find( '.widget-content' ).children().length );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ! widgetAddedEvent, 'expected widget added event not fired' );
+               assert.ok( 1 === control.container.find( '> .widget' ).length, 'expected there to be one .widget element in the container' );
+               assert.ok( 0 === control.container.find( '.widget-content' ).children().length );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                control.expand();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( 1 === control.container.find( '.widget-content' ).children().length );
-               ok( widgetAddedEvent );
-               ok( widgetControlRootElement.is( control.container.find( '> .widget' ) ) );
-               ok( 1 === control.container.find( '.widget-content #widget-search-2-title' ).length );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( 1 === control.container.find( '.widget-content' ).children().length );
+               assert.ok( widgetAddedEvent );
+               assert.ok( widgetControlRootElement.is( control.container.find( '> .widget' ) ) );
+               assert.ok( 1 === control.container.find( '.widget-content #widget-search-2-title' ).length );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $( document ).off( 'widget-added' );
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'widgets panel should have notice', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'widgets panel should have notice', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var panel = api.panel( 'widgets' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( panel.extended( api.Widgets.WidgetsPanel ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( panel.extended( api.Widgets.WidgetsPanel ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                panel.deferred.embedded.done( function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        ok( 1 === panel.contentContainer.find( '.no-widget-areas-rendered-notice' ).length );
-                       ok( panel.contentContainer.find( '.no-widget-areas-rendered-notice' ).is( ':visible' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.ok( 1 === panel.contentContainer.find( '.no-widget-areas-rendered-notice' ).length );
+                       assert.ok( panel.contentContainer.find( '.no-widget-areas-rendered-notice' ).is( ':visible' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                         api.section( 'sidebar-widgets-sidebar-1' ).active( true );
</span><span class="cx" style="display: block; padding: 0 10px">                        api.control( 'sidebars_widgets[sidebar-1]' ).active( true );
</span><span class="cx" style="display: block; padding: 0 10px">                        api.trigger( 'pane-contents-reflowed' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        ok( ! panel.contentContainer.find( '.no-widget-areas-rendered-notice' ).is( ':visible' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.ok( ! panel.contentContainer.find( '.no-widget-areas-rendered-notice' ).is( ':visible' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">                 } );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                expect( 4 );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.expect( 4 );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> });
</span></span></pre></div>
<a id="trunktestsqunitwpadminjsnavmenujs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/nav-menu.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/nav-menu.js 2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/nav-menu.js   2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6,7 +6,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                eventsFired = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Fail if we don't see the expected number of events triggered in 3 seconds.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        setTimeout( function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ setTimeout( function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 // QUnit may load this file without running it, in which case `assert`
</span><span class="cx" style="display: block; padding: 0 10px">                // will never be set to `assertPassed` below.
</span><span class="cx" style="display: block; padding: 0 10px">                assert && assert.equal(
</span></span></pre></div>
<a id="trunktestsqunitwpadminjspasswordstrengthmeterjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/password-strength-meter.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/password-strength-meter.js  2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/password-strength-meter.js    2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,16 +1,16 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /* global passwordStrength, wp, jQuery */
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery( function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'password-strength-meter' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'password-strength-meter' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'mismatched passwords should return 5', function() {
-               equal( passwordStrength( 'password1', 'username', 'password2' ), 5, 'mismatched passwords return 5' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'mismatched passwords should return 5', function( assert ) {
+               assert.equal( passwordStrength( 'password1', 'username', 'password2' ), 5, 'mismatched passwords return 5' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'passwords shorter than 4 characters should return 0', function() {
-               equal( passwordStrength( 'abc', 'username', 'abc' ), 0, 'short passwords return 0' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'passwords shorter than 4 characters should return 0', function( assert ) {
+               assert.equal( passwordStrength( 'abc', 'username', 'abc' ), 0, 'short passwords return 0' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'long complicated passwords should return 4', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'long complicated passwords should return 4', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var password = function( length ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        var i, n, retVal = '',
</span><span class="cx" style="display: block; padding: 0 10px">                                possibility = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21,21 +21,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">                },
</span><span class="cx" style="display: block; padding: 0 10px">                twofifty = password( 250 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( passwordStrength( twofifty, 'username', twofifty ), 4, '250 character complicated password returns 4' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( passwordStrength( twofifty, 'username', twofifty ), 4, '250 character complicated password returns 4' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'short uncomplicated passwords should return 0', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'short uncomplicated passwords should return 0', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var letters = 'aaaa',
</span><span class="cx" style="display: block; padding: 0 10px">                        numbers = '1111',
</span><span class="cx" style="display: block; padding: 0 10px">                        password = 'password',
</span><span class="cx" style="display: block; padding: 0 10px">                        uppercase = 'AAAA';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( passwordStrength( letters, 'username', letters ), 0, 'password of `' + letters + '` returns 0' );
-               equal( passwordStrength( numbers, 'username', numbers ), 0, 'password of `' + numbers + '` returns 0' );
-               equal( passwordStrength( uppercase, 'username', uppercase ), 0, 'password of `' + uppercase + '` returns 0' );
-               equal( passwordStrength( password, 'username', password ), 0, 'password of `' + password + '` returns 0' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( passwordStrength( letters, 'username', letters ), 0, 'password of `' + letters + '` returns 0' );
+               assert.equal( passwordStrength( numbers, 'username', numbers ), 0, 'password of `' + numbers + '` returns 0' );
+               assert.equal( passwordStrength( uppercase, 'username', uppercase ), 0, 'password of `' + uppercase + '` returns 0' );
+               assert.equal( passwordStrength( password, 'username', password ), 0, 'password of `' + password + '` returns 0' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'zxcvbn password tests should return the score we expect', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'zxcvbn password tests should return the score we expect', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var passwords, i;
</span><span class="cx" style="display: block; padding: 0 10px">                passwords = [
</span><span class="cx" style="display: block; padding: 0 10px">                        { pw: 'zxcvbn', score: 0 },
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -76,11 +76,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                ];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                for ( i = 0; i < passwords.length; i++ ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( passwordStrength( passwords[i].pw, 'username', passwords[i].pw ), passwords[i].score, 'password of `' + passwords[i].pw + '` returns ' + passwords[i].score );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( passwordStrength( passwords[i].pw, 'username', passwords[i].pw ), passwords[i].score, 'password of `' + passwords[i].pw + '` returns ' + passwords[i].score );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'blacklisted words in password should be penalized', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'blacklisted words in password should be penalized', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var allowedPasswordScore, penalizedPasswordScore,
</span><span class="cx" style="display: block; padding: 0 10px">                        allowedPassword   = 'a[janedoefoe]4',
</span><span class="cx" style="display: block; padding: 0 10px">                        penalizedPassword = 'a[johndoefoe]4',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -89,14 +89,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                allowedPasswordScore = passwordStrength( allowedPassword, blacklist, allowedPassword );
</span><span class="cx" style="display: block; padding: 0 10px">                penalizedPasswordScore = passwordStrength( penalizedPassword, blacklist, penalizedPassword );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( penalizedPasswordScore < allowedPasswordScore, 'Penalized password scored ' + penalizedPasswordScore + '; allowed password scored: ' + allowedPasswordScore );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( penalizedPasswordScore < allowedPasswordScore, 'Penalized password scored ' + penalizedPasswordScore + '; allowed password scored: ' + allowedPasswordScore );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'user input blacklist array should contain expected words', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'user input blacklist array should contain expected words', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var blacklist = wp.passwordStrength.userInputBlacklist();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( jQuery.isArray( blacklist ), 'blacklist is an array' );
-               ok( jQuery.inArray( 'WordPress', blacklist ) > -1, 'blacklist contains "WordPress" from page title' );
-               ok( jQuery.inArray( 'tests', blacklist ) > -1, 'blacklist contains "tests" from site URL' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( jQuery.isArray( blacklist ), 'blacklist is an array' );
+               assert.ok( jQuery.inArray( 'WordPress', blacklist ) > -1, 'blacklist contains "WordPress" from page title' );
+               assert.ok( jQuery.inArray( 'tests', blacklist ) > -1, 'blacklist contains "tests" from site URL' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> });
</span></span></pre></div>
<a id="trunktestsqunitwpadminjswidgetstestmediagallerywidgetjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/widgets/test-media-gallery-widget.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/widgets/test-media-gallery-widget.js        2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/widgets/test-media-gallery-widget.js  2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6,24 +6,24 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ( function() {
</span><span class="cx" style="display: block; padding: 0 10px">        'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Gallery Media Widget' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Gallery Media Widget' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'gallery widget control', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'gallery widget control', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var GalleryWidgetControl;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( typeof wp.mediaWidgets.controlConstructors.media_gallery, 'function', 'wp.mediaWidgets.controlConstructors.media_gallery is a function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( typeof wp.mediaWidgets.controlConstructors.media_gallery, 'function', 'wp.mediaWidgets.controlConstructors.media_gallery is a function' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 GalleryWidgetControl = wp.mediaWidgets.controlConstructors.media_gallery;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( GalleryWidgetControl.prototype instanceof wp.mediaWidgets.MediaWidgetControl, 'wp.mediaWidgets.controlConstructors.media_gallery subclasses wp.mediaWidgets.MediaWidgetControl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( GalleryWidgetControl.prototype instanceof wp.mediaWidgets.MediaWidgetControl, 'wp.mediaWidgets.controlConstructors.media_gallery subclasses wp.mediaWidgets.MediaWidgetControl' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'gallery media model', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'gallery media model', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var GalleryWidgetModel, galleryWidgetModelInstance;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( typeof wp.mediaWidgets.modelConstructors.media_gallery, 'function', 'wp.mediaWidgets.modelConstructors.media_gallery is a function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( typeof wp.mediaWidgets.modelConstructors.media_gallery, 'function', 'wp.mediaWidgets.modelConstructors.media_gallery is a function' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 GalleryWidgetModel = wp.mediaWidgets.modelConstructors.media_gallery;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( GalleryWidgetModel.prototype instanceof wp.mediaWidgets.MediaWidgetModel, 'wp.mediaWidgets.modelConstructors.media_gallery subclasses wp.mediaWidgets.MediaWidgetModel' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( GalleryWidgetModel.prototype instanceof wp.mediaWidgets.MediaWidgetModel, 'wp.mediaWidgets.modelConstructors.media_gallery subclasses wp.mediaWidgets.MediaWidgetModel' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                galleryWidgetModelInstance = new GalleryWidgetModel();
</span><span class="cx" style="display: block; padding: 0 10px">                _.each( galleryWidgetModelInstance.attributes, function( value, key ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( value, GalleryWidgetModel.prototype.schema[ key ][ 'default' ], 'Should properly set default for ' + key );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( value, GalleryWidgetModel.prototype.schema[ key ][ 'default' ], 'Should properly set default for ' + key );
</ins><span class="cx" style="display: block; padding: 0 10px">                 });
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsqunitwpadminjswidgetstestmediaimagewidgetjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/widgets/test-media-image-widget.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/widgets/test-media-image-widget.js  2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/widgets/test-media-image-widget.js    2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6,14 +6,14 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ( function() {
</span><span class="cx" style="display: block; padding: 0 10px">        'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Image Media Widget' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Image Media Widget' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'image widget control', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'image widget control', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var ImageWidgetControl, imageWidgetControlInstance, imageWidgetModelInstance, mappedProps, testImageUrl, templateProps;
</span><span class="cx" style="display: block; padding: 0 10px">                testImageUrl = 'http://s.w.org/style/images/wp-header-logo.png';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( typeof wp.mediaWidgets.controlConstructors.media_image, 'function', 'wp.mediaWidgets.controlConstructors.media_image is a function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( typeof wp.mediaWidgets.controlConstructors.media_image, 'function', 'wp.mediaWidgets.controlConstructors.media_image is a function' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 ImageWidgetControl = wp.mediaWidgets.controlConstructors.media_image;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ImageWidgetControl.prototype instanceof wp.mediaWidgets.MediaWidgetControl, 'wp.mediaWidgets.controlConstructors.media_image subclasses wp.mediaWidgets.MediaWidgetControl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ImageWidgetControl.prototype instanceof wp.mediaWidgets.MediaWidgetControl, 'wp.mediaWidgets.controlConstructors.media_image subclasses wp.mediaWidgets.MediaWidgetControl' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetModelInstance = new wp.mediaWidgets.modelConstructors.media_image();
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance = new ImageWidgetControl({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,35 +24,35 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test mapModelToPreviewTemplateProps() when no data is set.
</span><span class="cx" style="display: block; padding: 0 10px">                templateProps = imageWidgetControlInstance.mapModelToPreviewTemplateProps();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( templateProps.caption, undefined, 'mapModelToPreviewTemplateProps should not return attributes that are should_preview_update false' );
-               equal( templateProps.attachment_id, 0, 'mapModelToPreviewTemplateProps should return default values' );
-               equal( templateProps.currentFilename, '', 'mapModelToPreviewTemplateProps should return a currentFilename' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( templateProps.caption, undefined, 'mapModelToPreviewTemplateProps should not return attributes that are should_preview_update false' );
+               assert.equal( templateProps.attachment_id, 0, 'mapModelToPreviewTemplateProps should return default values' );
+               assert.equal( templateProps.currentFilename, '', 'mapModelToPreviewTemplateProps should return a currentFilename' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test mapModelToPreviewTemplateProps() when data is set on model.
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance.model.set( { url: testImageUrl, alt: 'some alt text', link_type: 'none' } );
</span><span class="cx" style="display: block; padding: 0 10px">                templateProps = imageWidgetControlInstance.mapModelToPreviewTemplateProps();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( templateProps.currentFilename, 'wp-header-logo.png', 'mapModelToPreviewTemplateProps should set currentFilename based off of url' );
-               equal( templateProps.url, testImageUrl, 'mapModelToPreviewTemplateProps should return the proper url' );
-               equal( templateProps.alt, 'some alt text', 'mapModelToPreviewTemplateProps should return the proper alt text' );
-               equal( templateProps.link_type, undefined, 'mapModelToPreviewTemplateProps should ignore attributes that are not needed in the preview' );
-               equal( templateProps.error, false, 'mapModelToPreviewTemplateProps should return error state' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( templateProps.currentFilename, 'wp-header-logo.png', 'mapModelToPreviewTemplateProps should set currentFilename based off of url' );
+               assert.equal( templateProps.url, testImageUrl, 'mapModelToPreviewTemplateProps should return the proper url' );
+               assert.equal( templateProps.alt, 'some alt text', 'mapModelToPreviewTemplateProps should return the proper alt text' );
+               assert.equal( templateProps.link_type, undefined, 'mapModelToPreviewTemplateProps should ignore attributes that are not needed in the preview' );
+               assert.equal( templateProps.error, false, 'mapModelToPreviewTemplateProps should return error state' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test mapModelToPreviewTemplateProps() when error is set on model.
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance.model.set( 'error', 'missing_attachment' );
</span><span class="cx" style="display: block; padding: 0 10px">                templateProps = imageWidgetControlInstance.mapModelToPreviewTemplateProps();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( templateProps.error, 'missing_attachment', 'mapModelToPreviewTemplateProps should return error string' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( templateProps.error, 'missing_attachment', 'mapModelToPreviewTemplateProps should return error string' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Reset model.
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance.model.set({ error: false, attachment_id: 0, url: null });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test isSelected().
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( imageWidgetControlInstance.isSelected(), false, 'media_image.isSelected() should return false when no media is selected' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( imageWidgetControlInstance.isSelected(), false, 'media_image.isSelected() should return false when no media is selected' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 imageWidgetControlInstance.model.set({ error: 'missing_attachment', attachment_id: 777 });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( imageWidgetControlInstance.isSelected(), false, 'media_image.isSelected() should return false when media is selected and error is set' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( imageWidgetControlInstance.isSelected(), false, 'media_image.isSelected() should return false when media is selected and error is set' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 imageWidgetControlInstance.model.set({ error: false, attachment_id: 777 });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( imageWidgetControlInstance.isSelected(), true, 'media_image.isSelected() should return true when media is selected and no error exists' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( imageWidgetControlInstance.isSelected(), true, 'media_image.isSelected() should return true when media is selected and no error exists' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 imageWidgetControlInstance.model.set({ error: false, attachment_id: 0, url: testImageUrl });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( imageWidgetControlInstance.isSelected(), true, 'media_image.isSelected() should return true when url is set and no error exists' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( imageWidgetControlInstance.isSelected(), true, 'media_image.isSelected() should return true when url is set and no error exists' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Reset model.
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance.model.set({ error: false, attachment_id: 0, url: null });
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -60,27 +60,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">                // Test editing of widget title.
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance.render();
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance.$el.find( '.title' ).val( 'Chicken and Ribs' ).trigger( 'input' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( imageWidgetModelInstance.get( 'title' ), 'Chicken and Ribs', 'Changing title should update model title attribute' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( imageWidgetModelInstance.get( 'title' ), 'Chicken and Ribs', 'Changing title should update model title attribute' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test mapMediaToModelProps.
</span><span class="cx" style="display: block; padding: 0 10px">                mappedProps = imageWidgetControlInstance.mapMediaToModelProps( { link: 'file', url: testImageUrl } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mappedProps.link_url, testImageUrl, 'mapMediaToModelProps should set file link_url according to mediaFrameProps.link' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mappedProps.link_url, testImageUrl, 'mapMediaToModelProps should set file link_url according to mediaFrameProps.link' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 mappedProps = imageWidgetControlInstance.mapMediaToModelProps( { link: 'post', postUrl: 'https://wordpress.org/image-2/' } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mappedProps.link_url, 'https://wordpress.org/image-2/', 'mapMediaToModelProps should set file link_url according to mediaFrameProps.link' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mappedProps.link_url, 'https://wordpress.org/image-2/', 'mapMediaToModelProps should set file link_url according to mediaFrameProps.link' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 mappedProps = imageWidgetControlInstance.mapMediaToModelProps( { link: 'custom', linkUrl: 'https://wordpress.org' } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mappedProps.link_url, 'https://wordpress.org', 'mapMediaToModelProps should set custom link_url according to mediaFrameProps.linkUrl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mappedProps.link_url, 'https://wordpress.org', 'mapMediaToModelProps should set custom link_url according to mediaFrameProps.linkUrl' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test mapModelToMediaFrameProps().
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetControlInstance.model.set({ error: false, url: testImageUrl, 'link_type': 'custom', 'link_url': 'https://wordpress.org', 'size': 'custom', 'width': 100, 'height': 150, 'title': 'widget title', 'image_title': 'title of image' });
</span><span class="cx" style="display: block; padding: 0 10px">                mappedProps = imageWidgetControlInstance.mapModelToMediaFrameProps( imageWidgetControlInstance.model.toJSON() );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mappedProps.linkUrl, 'https://wordpress.org', 'mapModelToMediaFrameProps should set linkUrl from model.link_url' );
-               equal( mappedProps.link, 'custom', 'mapModelToMediaFrameProps should set link from model.link_type' );
-               equal( mappedProps.width, 100, 'mapModelToMediaFrameProps should set width when model.size is custom' );
-               equal( mappedProps.height, 150, 'mapModelToMediaFrameProps should set height when model.size is custom' );
-               equal( mappedProps.title, 'title of image', 'mapModelToMediaFrameProps should set title from model.image_title' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mappedProps.linkUrl, 'https://wordpress.org', 'mapModelToMediaFrameProps should set linkUrl from model.link_url' );
+               assert.equal( mappedProps.link, 'custom', 'mapModelToMediaFrameProps should set link from model.link_type' );
+               assert.equal( mappedProps.width, 100, 'mapModelToMediaFrameProps should set width when model.size is custom' );
+               assert.equal( mappedProps.height, 150, 'mapModelToMediaFrameProps should set height when model.size is custom' );
+               assert.equal( mappedProps.title, 'title of image', 'mapModelToMediaFrameProps should set title from model.image_title' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'image widget control renderPreview', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'image widget control renderPreview', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var imageWidgetControlInstance, imageWidgetModelInstance, done;
</span><span class="cx" style="display: block; padding: 0 10px">                done = assert.async();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -90,27 +90,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        syncContainer: jQuery( '<div></div>' ),
</span><span class="cx" style="display: block; padding: 0 10px">                        model: imageWidgetModelInstance
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( imageWidgetControlInstance.$el.find( 'img' ).length, 0, 'No images should be rendered' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( imageWidgetControlInstance.$el.find( 'img' ).length, 0, 'No images should be rendered' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 imageWidgetControlInstance.model.set({ error: false, url: 'http://s.w.org/style/images/wp-header-logo.png' });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Due to renderPreview being deferred.
</span><span class="cx" style="display: block; padding: 0 10px">                setTimeout( function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( imageWidgetControlInstance.$el.find( 'img[src="http://s.w.org/style/images/wp-header-logo.png"]' ).length, 1, 'One image should be rendered' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( imageWidgetControlInstance.$el.find( 'img[src="http://s.w.org/style/images/wp-header-logo.png"]' ).length, 1, 'One image should be rendered' );
</ins><span class="cx" style="display: block; padding: 0 10px">                         done();
</span><span class="cx" style="display: block; padding: 0 10px">                }, 50 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                start();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         done();
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'image media model', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'image media model', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var ImageWidgetModel, imageWidgetModelInstance;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( typeof wp.mediaWidgets.modelConstructors.media_image, 'function', 'wp.mediaWidgets.modelConstructors.media_image is a function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( typeof wp.mediaWidgets.modelConstructors.media_image, 'function', 'wp.mediaWidgets.modelConstructors.media_image is a function' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 ImageWidgetModel = wp.mediaWidgets.modelConstructors.media_image;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( ImageWidgetModel.prototype instanceof wp.mediaWidgets.MediaWidgetModel, 'wp.mediaWidgets.modelConstructors.media_image subclasses wp.mediaWidgets.MediaWidgetModel' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( ImageWidgetModel.prototype instanceof wp.mediaWidgets.MediaWidgetModel, 'wp.mediaWidgets.modelConstructors.media_image subclasses wp.mediaWidgets.MediaWidgetModel' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                imageWidgetModelInstance = new ImageWidgetModel();
</span><span class="cx" style="display: block; padding: 0 10px">                _.each( imageWidgetModelInstance.attributes, function( value, key ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( value, ImageWidgetModel.prototype.schema[ key ][ 'default' ], 'Should properly set default for ' + key );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( value, ImageWidgetModel.prototype.schema[ key ][ 'default' ], 'Should properly set default for ' + key );
</ins><span class="cx" style="display: block; padding: 0 10px">                 });
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsqunitwpadminjswidgetstestmediavideowidgetjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/widgets/test-media-video-widget.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/widgets/test-media-video-widget.js  2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/widgets/test-media-video-widget.js    2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -6,14 +6,14 @@
</span><span class="cx" style="display: block; padding: 0 10px"> ( function() {
</span><span class="cx" style="display: block; padding: 0 10px">        'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Video Media Widget' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Video Media Widget' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'video widget control', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'video widget control', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var VideoWidgetControl, videoWidgetControlInstance, videoWidgetModelInstance, mappedProps, testVideoUrl;
</span><span class="cx" style="display: block; padding: 0 10px">                testVideoUrl = 'https://videos.files.wordpress.com/AHz0Ca46/wp4-7-vaughan-r8-mastered_hd.mp4';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( typeof wp.mediaWidgets.controlConstructors.media_video, 'function', 'wp.mediaWidgets.controlConstructors.media_video is a function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( typeof wp.mediaWidgets.controlConstructors.media_video, 'function', 'wp.mediaWidgets.controlConstructors.media_video is a function' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 VideoWidgetControl = wp.mediaWidgets.controlConstructors.media_video;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( VideoWidgetControl.prototype instanceof wp.mediaWidgets.MediaWidgetControl, 'wp.mediaWidgets.controlConstructors.media_video subclasses wp.mediaWidgets.MediaWidgetControl' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( VideoWidgetControl.prototype instanceof wp.mediaWidgets.MediaWidgetControl, 'wp.mediaWidgets.controlConstructors.media_video subclasses wp.mediaWidgets.MediaWidgetControl' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                videoWidgetModelInstance = new wp.mediaWidgets.modelConstructors.media_video();
</span><span class="cx" style="display: block; padding: 0 10px">                videoWidgetControlInstance = new VideoWidgetControl({
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -25,18 +25,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                // Test mapModelToMediaFrameProps().
</span><span class="cx" style="display: block; padding: 0 10px">                videoWidgetControlInstance.model.set({ error: false, url: testVideoUrl, loop: false, preload: 'meta' });
</span><span class="cx" style="display: block; padding: 0 10px">                mappedProps = videoWidgetControlInstance.mapModelToMediaFrameProps( videoWidgetControlInstance.model.toJSON() );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mappedProps.url, testVideoUrl, 'mapModelToMediaFrameProps should set url' );
-               equal( mappedProps.loop, false, 'mapModelToMediaFrameProps should set loop' );
-               equal( mappedProps.preload, 'meta', 'mapModelToMediaFrameProps should set preload' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mappedProps.url, testVideoUrl, 'mapModelToMediaFrameProps should set url' );
+               assert.equal( mappedProps.loop, false, 'mapModelToMediaFrameProps should set loop' );
+               assert.equal( mappedProps.preload, 'meta', 'mapModelToMediaFrameProps should set preload' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Test mapMediaToModelProps().
</span><span class="cx" style="display: block; padding: 0 10px">                mappedProps = videoWidgetControlInstance.mapMediaToModelProps( { loop: false, preload: 'meta', url: testVideoUrl, title: 'random movie file title' } );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( mappedProps.title, undefined, 'mapMediaToModelProps should ignore title inputs' );
-               equal( mappedProps.loop, false, 'mapMediaToModelProps should set loop' );
-               equal( mappedProps.preload, 'meta', 'mapMediaToModelProps should set preload' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( mappedProps.title, undefined, 'mapMediaToModelProps should ignore title inputs' );
+               assert.equal( mappedProps.loop, false, 'mapMediaToModelProps should set loop' );
+               assert.equal( mappedProps.preload, 'meta', 'mapMediaToModelProps should set preload' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'video widget control renderPreview', function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'video widget control renderPreview', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var videoWidgetControlInstance, videoWidgetModelInstance, done;
</span><span class="cx" style="display: block; padding: 0 10px">                done = assert.async();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -46,26 +46,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        syncContainer: jQuery( '<div></div>' ),
</span><span class="cx" style="display: block; padding: 0 10px">                        model: videoWidgetModelInstance
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( videoWidgetControlInstance.$el.find( 'a' ).length, 0, 'No video links should be rendered' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( videoWidgetControlInstance.$el.find( 'a' ).length, 0, 'No video links should be rendered' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 videoWidgetControlInstance.model.set({ error: false, url: 'https://videos.files.wordpress.com/AHz0Ca46/wp4-7-vaughan-r8-mastered_hd.mp4' });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Due to renderPreview being deferred.
</span><span class="cx" style="display: block; padding: 0 10px">                setTimeout( function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( videoWidgetControlInstance.$el.find( 'a[href="https://videos.files.wordpress.com/AHz0Ca46/wp4-7-vaughan-r8-mastered_hd.mp4"]' ).length, 1, 'One video link should be rendered' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( videoWidgetControlInstance.$el.find( 'a[href="https://videos.files.wordpress.com/AHz0Ca46/wp4-7-vaughan-r8-mastered_hd.mp4"]' ).length, 1, 'One video link should be rendered' );
</ins><span class="cx" style="display: block; padding: 0 10px">                         done();
</span><span class="cx" style="display: block; padding: 0 10px">                }, 50 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                start();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               done();
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'video media model', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'video media model', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var VideoWidgetModel, videoWidgetModelInstance;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( typeof wp.mediaWidgets.modelConstructors.media_video, 'function', 'wp.mediaWidgets.modelConstructors.media_video is a function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( typeof wp.mediaWidgets.modelConstructors.media_video, 'function', 'wp.mediaWidgets.modelConstructors.media_video is a function' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 VideoWidgetModel = wp.mediaWidgets.modelConstructors.media_video;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( VideoWidgetModel.prototype instanceof wp.mediaWidgets.MediaWidgetModel, 'wp.mediaWidgets.modelConstructors.media_video subclasses wp.mediaWidgets.MediaWidgetModel' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( VideoWidgetModel.prototype instanceof wp.mediaWidgets.MediaWidgetModel, 'wp.mediaWidgets.modelConstructors.media_video subclasses wp.mediaWidgets.MediaWidgetModel' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                videoWidgetModelInstance = new VideoWidgetModel();
</span><span class="cx" style="display: block; padding: 0 10px">                _.each( videoWidgetModelInstance.attributes, function( value, key ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        equal( value, VideoWidgetModel.prototype.schema[ key ][ 'default' ], 'Should properly set default for ' + key );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 assert.equal( value, VideoWidgetModel.prototype.schema[ key ][ 'default' ], 'Should properly set default for ' + key );
</ins><span class="cx" style="display: block; padding: 0 10px">                 });
</span><span class="cx" style="display: block; padding: 0 10px">        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsqunitwpadminjswidgetstestmediawidgetsjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-admin/js/widgets/test-media-widgets.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-admin/js/widgets/test-media-widgets.js       2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-admin/js/widgets/test-media-widgets.js 2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2,35 +2,35 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /* jshint qunit: true */
</span><span class="cx" style="display: block; padding: 0 10px"> /* eslint-env qunit */
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-(function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+( function() {
</ins><span class="cx" style="display: block; padding: 0 10px">         'use strict';
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'Media Widgets' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'Media Widgets' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'namespace', function() {
-               equal( typeof wp.mediaWidgets, 'object', 'wp.mediaWidgets is an object' );
-               equal( typeof wp.mediaWidgets.controlConstructors, 'object', 'wp.mediaWidgets.controlConstructors is an object' );
-               equal( typeof wp.mediaWidgets.modelConstructors, 'object', 'wp.mediaWidgets.modelConstructors is an object' );
-               equal( typeof wp.mediaWidgets.widgetControls, 'object', 'wp.mediaWidgets.widgetControls is an object' );
-               equal( typeof wp.mediaWidgets.handleWidgetAdded, 'function', 'wp.mediaWidgets.handleWidgetAdded is an function' );
-               equal( typeof wp.mediaWidgets.handleWidgetUpdated, 'function', 'wp.mediaWidgets.handleWidgetUpdated is an function' );
-               equal( typeof wp.mediaWidgets.init, 'function', 'wp.mediaWidgets.init is an function' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'namespace', function( assert ) {
+               assert.equal( typeof wp.mediaWidgets, 'object', 'wp.mediaWidgets is an object' );
+               assert.equal( typeof wp.mediaWidgets.controlConstructors, 'object', 'wp.mediaWidgets.controlConstructors is an object' );
+               assert.equal( typeof wp.mediaWidgets.modelConstructors, 'object', 'wp.mediaWidgets.modelConstructors is an object' );
+               assert.equal( typeof wp.mediaWidgets.widgetControls, 'object', 'wp.mediaWidgets.widgetControls is an object' );
+               assert.equal( typeof wp.mediaWidgets.handleWidgetAdded, 'function', 'wp.mediaWidgets.handleWidgetAdded is an function' );
+               assert.equal( typeof wp.mediaWidgets.handleWidgetUpdated, 'function', 'wp.mediaWidgets.handleWidgetUpdated is an function' );
+               assert.equal( typeof wp.mediaWidgets.init, 'function', 'wp.mediaWidgets.init is an function' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'media widget control', function() {
-               equal( typeof wp.mediaWidgets.MediaWidgetControl, 'function', 'wp.mediaWidgets.MediaWidgetControl' );
-               ok( wp.mediaWidgets.MediaWidgetControl.prototype instanceof Backbone.View, 'wp.mediaWidgets.MediaWidgetControl subclasses Backbone.View' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'media widget control', function( assert ) {
+               assert.equal( typeof wp.mediaWidgets.MediaWidgetControl, 'function', 'wp.mediaWidgets.MediaWidgetControl' );
+               assert.ok( wp.mediaWidgets.MediaWidgetControl.prototype instanceof Backbone.View, 'wp.mediaWidgets.MediaWidgetControl subclasses Backbone.View' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'media widget model', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'media widget model', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var widgetModelInstance;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( typeof wp.mediaWidgets.MediaWidgetModel, 'function', 'wp.mediaWidgets.MediaWidgetModel is a function' );
-               ok( wp.mediaWidgets.MediaWidgetModel.prototype instanceof Backbone.Model, 'wp.mediaWidgets.MediaWidgetModel subclasses Backbone.Model' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( typeof wp.mediaWidgets.MediaWidgetModel, 'function', 'wp.mediaWidgets.MediaWidgetModel is a function' );
+               assert.ok( wp.mediaWidgets.MediaWidgetModel.prototype instanceof Backbone.Model, 'wp.mediaWidgets.MediaWidgetModel subclasses Backbone.Model' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                widgetModelInstance = new wp.mediaWidgets.MediaWidgetModel();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( widgetModelInstance.get( 'title' ), '', 'wp.mediaWidgets.MediaWidgetModel defaults title to empty string' );
-               equal( widgetModelInstance.get( 'attachment_id' ), 0, 'wp.mediaWidgets.MediaWidgetModel defaults attachment_id to 0' );
-               equal( widgetModelInstance.get( 'url' ), 0, 'wp.mediaWidgets.MediaWidgetModel defaults url to empty string' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( widgetModelInstance.get( 'title' ), '', 'wp.mediaWidgets.MediaWidgetModel defaults title to empty string' );
+               assert.equal( widgetModelInstance.get( 'attachment_id' ), 0, 'wp.mediaWidgets.MediaWidgetModel defaults attachment_id to 0' );
+               assert.equal( widgetModelInstance.get( 'url' ), 0, 'wp.mediaWidgets.MediaWidgetModel defaults url to empty string' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                widgetModelInstance.set({
</span><span class="cx" style="display: block; padding: 0 10px">                        title: 'chicken and ribs',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -37,9 +37,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        attachment_id: '1',
</span><span class="cx" style="display: block; padding: 0 10px">                        url: 'https://wordpress.org'
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( widgetModelInstance.get( 'title' ), 'chicken and ribs', 'wp.mediaWidgets.MediaWidgetModel properly sets the title attribute' );
-               equal( widgetModelInstance.get( 'url' ), 'https://wordpress.org', 'wp.mediaWidgets.MediaWidgetModel properly sets the url attribute' );
-               equal( widgetModelInstance.get( 'attachment_id' ), 1, 'wp.mediaWidgets.MediaWidgetModel properly sets and casts the attachment_id attribute' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( widgetModelInstance.get( 'title' ), 'chicken and ribs', 'wp.mediaWidgets.MediaWidgetModel properly sets the title attribute' );
+               assert.equal( widgetModelInstance.get( 'url' ), 'https://wordpress.org', 'wp.mediaWidgets.MediaWidgetModel properly sets the url attribute' );
+               assert.equal( widgetModelInstance.get( 'attachment_id' ), 1, 'wp.mediaWidgets.MediaWidgetModel properly sets and casts the attachment_id attribute' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> })();
</span></span></pre></div>
<a id="trunktestsqunitwpincludesjsshortcodejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-includes/js/shortcode.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-includes/js/shortcode.js     2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-includes/js/shortcode.js       2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,167 +1,167 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /* global wp, jQuery */
</span><span class="cx" style="display: block; padding: 0 10px"> jQuery( function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'shortcode' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'shortcode' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should find the shortcode', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should find the shortcode', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Basic.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foo] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 13, 'foo shortcode found at index 13' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 13, 'foo shortcode found at index 13' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foo param="foo"] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 13, 'foo shortcode with params found at index 13' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 13, 'foo shortcode with params found at index 13' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should not find shortcodes that are not there', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should not find shortcodes that are not there', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Not found.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'bar', 'this has the [foo] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, undefined, 'bar shortcode not found' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, undefined, 'bar shortcode not found' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'bar', 'this has the [foo param="bar"] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, undefined, 'bar shortcode not found with params' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, undefined, 'bar shortcode not found with params' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should find the shortcode when told to start looking beyond the start of the string', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should find the shortcode when told to start looking beyond the start of the string', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Starting at indices.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foo] shortcode', 12 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 13, 'foo shortcode found before index 13' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 13, 'foo shortcode found before index 13' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foo] shortcode', 13 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 13, 'foo shortcode found at index 13' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 13, 'foo shortcode found at index 13' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foo] shortcode', 14 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, undefined, 'foo shortcode not found after index 13' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, undefined, 'foo shortcode not found after index 13' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should find the second instances of the shortcode when the starting indice is after the start of the first one', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should find the second instances of the shortcode when the starting indice is after the start of the first one', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foo] shortcode [foo] twice', 14 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 29, 'foo shortcode found the second foo at index 29' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 29, 'foo shortcode found the second foo at index 29' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should not find escaped shortcodes', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should not find escaped shortcodes', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Escaped.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [[foo]] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, undefined, 'foo shortcode not found when escaped' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, undefined, 'foo shortcode not found when escaped' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [[foo param="foo"]] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, undefined, 'foo shortcode not found when escaped with params' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, undefined, 'foo shortcode not found when escaped with params' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should find shortcodes that are incorrectly escaped by newlines', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should find shortcodes that are incorrectly escaped by newlines', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [\n[foo]] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 15, 'shortcode found when incorrectly escaping the start of it' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 15, 'shortcode found when incorrectly escaping the start of it' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [[foo]\n] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 14, 'shortcode found when incorrectly escaping the end of it' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 14, 'shortcode found when incorrectly escaping the end of it' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should still work when there are not equal ammounts of square brackets', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should still work when there are not equal ammounts of square brackets', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [[foo] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 14, 'shortcode found when there are offset square brackets' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 14, 'shortcode found when there are offset square brackets' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foo]] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 13, 'shortcode found when there are offset square brackets' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 13, 'shortcode found when there are offset square brackets' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should find the second instances of the shortcode when the first one is escaped', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should find the second instances of the shortcode when the first one is escaped', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [[foo]] shortcode [foo] twice' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result.index, 31, 'foo shortcode found the non-escaped foo at index 31' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result.index, 31, 'foo shortcode found the non-escaped foo at index 31' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'next() should not find shortcodes that are not full matches', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'next() should not find shortcodes that are not full matches', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Stubs.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foo', 'this has the [foobar] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, undefined, 'stub does not trigger match' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, undefined, 'stub does not trigger match' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.next( 'foobar', 'this has the [foo] shortcode' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, undefined, 'stub does not trigger match' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, undefined, 'stub does not trigger match' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'replace() should replace the shortcode', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'replace() should replace the shortcode', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Basic.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this has the [foo] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the bar shortcode', 'foo replaced with bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the bar shortcode', 'foo replaced with bar' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this has the [foo param="foo"] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the bar shortcode', 'foo and params replaced with bar' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the bar shortcode', 'foo and params replaced with bar' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'replace() should not replace the shortcode when it does not match', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'replace() should not replace the shortcode when it does not match', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Not found.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'bar', 'this has the [foo] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the [foo] shortcode', 'bar not found' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the [foo] shortcode', 'bar not found' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'bar', 'this has the [foo param="bar"] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the [foo param="bar"] shortcode', 'bar not found with params' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the [foo param="bar"] shortcode', 'bar not found with params' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'replace() should replace the shortcode in all instances of its use', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'replace() should replace the shortcode in all instances of its use', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Multiple instances.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this has the [foo] shortcode [foo] twice', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the bar shortcode bar twice', 'foo replaced with bar twice' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the bar shortcode bar twice', 'foo replaced with bar twice' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this has the [foo param="foo"] shortcode [foo] twice', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the bar shortcode bar twice', 'foo and params replaced with bar twice' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the bar shortcode bar twice', 'foo and params replaced with bar twice' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'replace() should not replace the escaped shortcodes', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'replace() should not replace the escaped shortcodes', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Escaped.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this has the [[foo]] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the [[foo]] shortcode', 'escaped foo not replaced' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the [[foo]] shortcode', 'escaped foo not replaced' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this has the [[foo param="bar"]] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the [[foo param="bar"]] shortcode', 'escaped foo with params not replaced' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the [[foo param="bar"]] shortcode', 'escaped foo with params not replaced' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this [foo] has the [[foo param="bar"]] shortcode escaped', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this bar has the [[foo param="bar"]] shortcode escaped', 'escaped foo with params not replaced but unescaped foo replaced' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this bar has the [[foo param="bar"]] shortcode escaped', 'escaped foo with params not replaced but unescaped foo replaced' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'replace() should replace improperly escaped shortcodes that include newlines', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'replace() should replace improperly escaped shortcodes that include newlines', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this [foo] has the [[foo param="bar"]\n] shortcode ', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this bar has the [bar\n] shortcode ', 'escaping with newlines should not actually escape the content' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this bar has the [bar\n] shortcode ', 'escaping with newlines should not actually escape the content' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this [foo] has the [\n[foo param="bar"]] shortcode ', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this bar has the [\nbar] shortcode ', 'escaping with newlines should not actually escape the content' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this bar has the [\nbar] shortcode ', 'escaping with newlines should not actually escape the content' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'replace() should not replace the shortcode when it is an incomplete match', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'replace() should not replace the shortcode when it is an incomplete match', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Stubs.
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foo', 'this has the [foobar] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the [foobar] shortcode', 'stub not replaced' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the [foobar] shortcode', 'stub not replaced' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.replace( 'foobar', 'this has the [foo] shortcode', shortcodeReplaceCallback );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( result, 'this has the [foo] shortcode', 'stub not replaced' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( result, 'this has the [foo] shortcode', 'stub not replaced' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -171,7 +171,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return 'bar';
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    test( 'attrs() should return named attributes created with single, double, and no quotes', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    QUnit.test( 'attrs() should return named attributes created with single, double, and no quotes', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var expected = {
</span><span class="cx" style="display: block; padding: 0 10px">             'named': {
</span><span class="cx" style="display: block; padding: 0 10px">                 'param': 'foo',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -180,42 +180,42 @@
</span><span class="cx" style="display: block; padding: 0 10px">             }, 'numeric' : []
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        deepEqual( wp.shortcode.attrs('param="foo" another=\'bar\' andagain=baz'), expected, 'attr parsed all three named types');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        assert.deepEqual( wp.shortcode.attrs('param="foo" another=\'bar\' andagain=baz'), expected, 'attr parsed all three named types');
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    test( 'attrs() should return numeric attributes in the order they are used', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    QUnit.test( 'attrs() should return numeric attributes in the order they are used', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var expected = {
</span><span class="cx" style="display: block; padding: 0 10px">             'named': {}, 'numeric' : ['foo', 'bar', 'baz']
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        deepEqual( wp.shortcode.attrs('foo bar baz'), expected, 'attr parsed numeric attributes');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        assert.deepEqual( wp.shortcode.attrs('foo bar baz'), expected, 'attr parsed numeric attributes');
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-    test( 'attrs() should return numeric attributes in the order they are used when they have named attributes in between', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+    QUnit.test( 'attrs() should return numeric attributes in the order they are used when they have named attributes in between', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">         var expected = {
</span><span class="cx" style="display: block; padding: 0 10px">             'named': { 'not': 'a blocker'  }, 'numeric' : ['foo', 'bar', 'baz']
</span><span class="cx" style="display: block; padding: 0 10px">         };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        deepEqual( wp.shortcode.attrs('foo not="a blocker" bar baz'), expected, 'attr parsed numeric attributes');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        assert.deepEqual( wp.shortcode.attrs('foo not="a blocker" bar baz'), expected, 'attr parsed numeric attributes');
</ins><span class="cx" style="display: block; padding: 0 10px">     });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'attrs() should return numeric attributes created with single, double, and no quotes', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'attrs() should return numeric attributes created with single, double, and no quotes', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var expected = {
</span><span class="cx" style="display: block; padding: 0 10px">                        'named': {}, 'numeric' : ['foo', 'bar', 'baz']
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                deepEqual( wp.shortcode.attrs('foo "bar" \'baz\''), expected, 'attr parsed numeric attributes');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.deepEqual( wp.shortcode.attrs('foo "bar" \'baz\''), expected, 'attr parsed numeric attributes');
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px">        
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'attrs() should return mixed attributes created with single, double, and no quotes', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'attrs() should return mixed attributes created with single, double, and no quotes', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var expected = {
</span><span class="cx" style="display: block; padding: 0 10px">                        'named': { a: 'foo', b: 'bar', c: 'baz' }, 'numeric' : ['foo', 'bar', 'baz']
</span><span class="cx" style="display: block; padding: 0 10px">                };
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                deepEqual( wp.shortcode.attrs('a="foo" b=\'bar\' c=baz foo "bar" \'baz\''), expected, 'attr parsed numeric attributes');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.deepEqual( wp.shortcode.attrs('a="foo" b=\'bar\' c=baz foo "bar" \'baz\''), expected, 'attr parsed numeric attributes');
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        test( 'string() should accept attrs in any order', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test( 'string() should accept attrs in any order', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var expected = '[short abc123 foo="bar"]';
</span><span class="cx" style="display: block; padding: 0 10px">                var result;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -227,7 +227,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                numeric : [ 'abc123' ]
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                deepEqual( result, expected, 'attributes are accepted in any order' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.deepEqual( result, expected, 'attributes are accepted in any order' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                result = wp.shortcode.string({
</span><span class="cx" style="display: block; padding: 0 10px">                        tag   : 'short',
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -237,6 +237,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                named   : { foo : 'bar' }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                });
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                deepEqual( result, expected, 'attributes are accepted in any order' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.deepEqual( result, expected, 'attributes are accepted in any order' );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> });
</span></span></pre></div>
<a id="trunktestsqunitwpincludesjstinymcetinymceobsoletejs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-includes/js/tinymce/tinymce-obsolete.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-includes/js/tinymce/tinymce-obsolete.js      2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-includes/js/tinymce/tinymce-obsolete.js        2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -81,7 +81,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Ref: http://www.w3.org/TR/html5/obsolete.html, http://developers.whatwg.org/obsolete.html
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        QUnit.test('HTML elements non-conforming to HTML 5.0', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('HTML elements non-conforming to HTML 5.0', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var testString;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                /*
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -109,97 +109,97 @@
</span><span class="cx" style="display: block; padding: 0 10px">                The rest are still supported in TinyMCE but "...must not be used by authors".
</span><span class="cx" style="display: block; padding: 0 10px">                */
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                expect(6);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.expect(6);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'acronym';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><acronym title="www">WWW</acronym></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'strike, converted to span';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( '<strike>test</strike>' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), '<p><span style="text-decoration: line-through;">test</span></p>', text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), '<p><span style="text-decoration: line-through;">test</span></p>', text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'big';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><big>test</big></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'center';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<center>test</center>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'font, converted to span';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( '<p><font size="4">test</font></p>' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), '<p><span style="font-size: large;">test</span></p>', text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), '<p><span style="font-size: large;">test</span></p>', text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'tt';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><tt>test</tt></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        QUnit.test('Obsolete (but still conforming) HTML attributes', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('Obsolete (but still conforming) HTML attributes', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var testString;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                expect(3);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.expect(3);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'border on <img>';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><img src="../../test.gif" alt="" border="5" /></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'Old style anchors';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><a name="test"></a></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'maxlength, size on input type="number"';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><input maxlength="5" size="10" type="number" value="" /></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { input: 'maxlength size' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { input: 'maxlength size' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        QUnit.test('Obsolete attributes in HTML 5.0', function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.test('Obsolete attributes in HTML 5.0', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 var testString, text;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                expect(22);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.expect(22);
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'charset, rev, shape, coords on <a> elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><a href="javascript;:" charset="en" rev="made" shape="rect" coords="5,5">test</a></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { a: 'charset rev shape coords' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { a: 'charset rev shape coords' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'name, align, hspace, vspace on img elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><img src="../../test.gif" alt="" name="test" align="left" hspace="5" vspace="5" /></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { img: 'name align hspace vspace' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { img: 'name align hspace vspace' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'name, align, hspace, vspace, on embed elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><embed width="100" height="100" src="test.swf" vspace="5" hspace="5" align="left" name="test"></embed></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { embed: 'name align hspace vspace' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { embed: 'name align hspace vspace' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'archive, classid, code, codebase, codetype, declare, standby on object elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><object width="100" height="100" classid="clsid" codebase="clsid" standby="standby" codetype="1" code="1" archive="1" declare="declare"></object></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { object: 'archive classid code codebase codetype declare standby' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { object: 'archive classid code codebase codetype declare standby' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'type, valuetype on param elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><object width="100" height="100"><param type="" valuetype="" /></object></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { param: 'type valuetype' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { param: 'type valuetype' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, bgcolor, border, cellpadding, cellspacing, frame, rules, summary, width on table elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<table border="1" summary="" width="100" frame="" rules="" cellspacing="5" cellpadding="5" align="left" bgcolor="blue"><tbody><tr><td>test</td></tr></tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { table: 'align bgcolor border cellpadding cellspacing frame rules summary width' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { table: 'align bgcolor border cellpadding cellspacing frame rules summary width' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, char, charoff, valign on tbody, thead, and tfoot elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<table><thead align="left" char="" charoff="" valign="top"></thead><tfoot align="left" char="" charoff="" valign="top"></tfoot><tbody align="left" char="" charoff="" valign="top"><tr><th>test</th><td>test</td></tr></tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), {
</ins><span class="cx" style="display: block; padding: 0 10px">                         thead: 'align char charoff valign',
</span><span class="cx" style="display: block; padding: 0 10px">                        tfoot: 'align char charoff valign',
</span><span class="cx" style="display: block; padding: 0 10px">                        tbody: 'align char charoff valign'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -208,7 +208,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'axis, align, bgcolor, char, charoff, height, nowrap, valign, width on td and th elements, scope on td elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<table><tbody><tr><th axis="" align="left" char="" charoff="" valign="top" nowrap="nowrap" bgcolor="blue" width="100" height="10">test</th><td axis="" align="left" char="" charoff="" valign="top" nowrap="nowrap" bgcolor="blue" width="100" height="10" scope="">test</td></tr></tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), {
</ins><span class="cx" style="display: block; padding: 0 10px">                         th: 'axis align bgcolor char charoff height nowrap valign width',
</span><span class="cx" style="display: block; padding: 0 10px">                        td: 'axis align bgcolor char charoff height nowrap valign width scope'
</span><span class="cx" style="display: block; padding: 0 10px">                } ), text );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -216,72 +216,72 @@
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, bgcolor, char, charoff, valign on tr elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<table><tbody><tr align="left" char="" charoff="" valign="top" bgcolor="blue"><td>test</td></tr></tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { tr: 'align bgcolor char charoff valign' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { tr: 'align bgcolor char charoff valign' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'clear on br elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p>test<br clear="all" />test</p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align on caption elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<table><caption align="left">test</caption><tbody><tr><td>test</td></tr></tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, char, charoff, valign, width on col elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<table><colgroup><col width="100" align="left" char="a" charoff="1" valign="top" /><col /></colgroup><tbody><tr><td>test</td><td>test</td></tr></tbody></table>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { col: 'align char charoff valign width' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { col: 'align char charoff valign width' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align on div, h1—h6, input, legend, p elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<div align="left">1</div><h3 align="left">1</h3><p align="left">1</p><form><fieldset><legend align="left">test</legend><input type="text" align="left" /></fieldset></form>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'compact on dl elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<dl compact="compact"><dd>1</dd></dl>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, hspace, vspace on embed elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><embed width="100" height="100" vspace="5" hspace="5" align="left"></embed></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { embed: 'align hspace vspace' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { embed: 'align hspace vspace' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, noshade, size, width on hr elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<hr align="left" noshade="noshade" size="1" width="100" />';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { hr: 'align noshade size width' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { hr: 'align noshade size width' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, frameborder, marginheight, marginwidth, scrolling on iframe elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><iframe width="100" height="100" frameborder="1" marginwidth="5" marginheight="5" scrolling="" align="left"></iframe></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { iframe: 'align frameborder marginheight marginwidth scrolling' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { iframe: 'align frameborder marginheight marginwidth scrolling' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'type on li elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<ul><li type="disc">test</li></ul>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'align, border, hspace, vspace on object elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<p><object width="100" height="100" border="1" vspace="5" hspace="5" align="left"></object></p>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { object: 'align border hspace vspace' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { object: 'align border hspace vspace' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'compact on ol elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<ol compact="compact"><li>test</li></ol>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'compact, type on ul elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<ul type="disc" compact="compact"><li>test</li></ul>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                ok( hasAttr( editor.getContent(), { ul: 'compact type' } ), text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.ok( hasAttr( editor.getContent(), { ul: 'compact type' } ), text );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                text = 'width on pre elements';
</span><span class="cx" style="display: block; padding: 0 10px">                testString = '<pre width="100">1</pre>';
</span><span class="cx" style="display: block; padding: 0 10px">                editor.setContent( testString );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                equal( editor.getContent(), testString, text );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         assert.equal( editor.getContent(), testString, text );
</ins><span class="cx" style="display: block; padding: 0 10px">         });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> } )( window.jQuery, window.QUnit, window.tinymce );
</span></span></pre></div>
<a id="trunktestsqunitwpincludesjswpapijs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/qunit/wp-includes/js/wp-api.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/qunit/wp-includes/js/wp-api.js        2020-03-26 17:50:39 UTC (rev 47511)
+++ trunk/tests/qunit/wp-includes/js/wp-api.js  2020-03-27 00:16:58 UTC (rev 47512)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,6 +1,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /* global wp, JSON */
</span><span class="cx" style="display: block; padding: 0 10px"> ( function( QUnit ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        module( 'wpapi' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ QUnit.module( 'wpapi' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        QUnit.test( 'API Loaded correctly', function( assert ) {
</span><span class="cx" style="display: block; padding: 0 10px">                var done = assert.async();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -122,7 +122,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        _.each( modelsWithIdsClassNames, function( className ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                QUnit.test( 'Checking ' + className + ' model.' , function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         QUnit.test( 'Checking ' + className + ' model.', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         var done = assert.async();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        assert.expect( 2 );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -160,7 +160,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        _.each( modelsWithIndexes, function( className ) {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                QUnit.test( 'Testing ' + className + ' model.' , function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         QUnit.test( 'Testing ' + className + ' model.', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         var done = assert.async();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        assert.expect( 2 );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -296,7 +296,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Check that we have and can get each model type.
</span><span class="cx" style="display: block; padding: 0 10px">                _.each( customClasses, function( className ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        QUnit.test( 'Checking ' + className + ' class name.' , function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 QUnit.test( 'Checking ' + className + ' class name.', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 var done = assert.async();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                assert.expect( 2 );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -316,7 +316,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Check connecting to a second URL.
</span><span class="cx" style="display: block; padding: 0 10px">        wp.api.loadPromise.done( function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                QUnit.test( 'Checking connecting to a remote url.' , function( assert ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         QUnit.test( 'Checking connecting to a remote url.', function( assert ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         var done = assert.async();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        wp.api.init({
</span></span></pre>
</div>
</div>

</body>
</html>