jasmine-core 3.7.1 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e0633e3d3e468f779220b229062eae61754bc886788981cadb4ac571ca61f09e
4
- data.tar.gz: c738ae0489e9b35212f228b0c81674ef19544338b39ca0fa86f09977d04c61ea
3
+ metadata.gz: a1d57232cc4b128cad1a9e9ddbc94319bd2b56a24211eaae6e32fc1e5c181810
4
+ data.tar.gz: ca6ebdb25bc946e9b2abd7e71d22e2cdf22edf33ae86824ab5e7f07d9689cdba
5
5
  SHA512:
6
- metadata.gz: ce627b117c79117d1c83b17411291022310e5d15eeec55a99eb90663397a21657d64361c7a8384bf6a3909c7bef5961d25344f0d66467be1fa267ad74aa1421e
7
- data.tar.gz: 492b3ce3d974d9ce732fbf799e2b6c8eee5c98466b5c9656d910e6df5f4ad2a225b206a9d14b400abc8749a6ebaffaf6f4f77b80d9df9e96f211bf1b14bfb6e3
6
+ metadata.gz: 0d7258d7339350d5bd68e4fa7da1b0170524f74a81c5ca1ca73f919924abde8efa98c1459bda1db2b89ca43973c821e93027ca8a0db720f67241a3aaa7b7c777
7
+ data.tar.gz: 61b1a8dfdb8d06916111340bd2a281ca0da8c102385ac5e011a7091d4813f9499928060686c3b92d15d2f6aeaec642f1036fc506f6448b917470b8e601ae070e
@@ -1,4 +1,33 @@
1
1
  import pkg_resources
2
+ import os
3
+
4
+ if 'SUPPRESS_JASMINE_DEPRECATION' not in os.environ:
5
+ print('DEPRECATION WARNING:\n' +
6
+ '\n' +
7
+ 'The Jasmine packages for Python are deprecated. There will be no further\n' +
8
+ 'releases after the end of the Jasmine 3.x series. We recommend migrating to the\n' +
9
+ 'following options:\n' +
10
+ '\n' +
11
+ '* jasmine-browser-runner (<https://github.com/jasmine/jasmine-browser>,\n' +
12
+ ' `npm install jasmine-browser-runner`) to run specs in browsers, including\n' +
13
+ ' headless Chrome and Saucelabs. This is the most direct replacement for the\n' +
14
+ ' jasmine server` and `jasmine ci` commands provided by the `jasmine` Python\n' +
15
+ ' package.\n' +
16
+ '* The jasmine npm package (<https://github.com/jasmine/jasmine-npm>,\n' +
17
+ ' `npm install jasmine`) to run specs under Node.js.\n' +
18
+ '* The standalone distribution from the latest Jasmine release\n' +
19
+ ' <https://github.com/jasmine/jasmine/releases> to run specs in browsers with\n' +
20
+ ' no additional tools.\n' +
21
+ '* The jasmine-core npm package (`npm install jasmine-core`) if all you need is\n' +
22
+ ' the Jasmine assets. This is the direct equivalent of the jasmine-core Python\n' +
23
+ ' package.\n' +
24
+ '\n' +
25
+ 'Except for the standalone distribution, all of the above are distributed through\n' +
26
+ 'npm.\n' +
27
+ '\n' +
28
+ 'To prevent this message from appearing, set the SUPPRESS_JASMINE_DEPRECATION\n' +
29
+ 'environment variable.\n')
30
+
2
31
 
3
32
  try:
4
33
  from collections import OrderedDict
@@ -208,7 +208,10 @@ jasmineRequire.HtmlReporter = function(j$) {
208
208
  ' of ' +
209
209
  totalSpecsDefined +
210
210
  ' specs - run all';
211
- var skippedLink = addToExistingQueryString('spec', '');
211
+ // include window.location.pathname to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
212
+ var skippedLink =
213
+ (window.location.pathname || '') +
214
+ addToExistingQueryString('spec', '');
212
215
  alert.appendChild(
213
216
  createDom(
214
217
  'span',
@@ -565,7 +568,7 @@ jasmineRequire.HtmlReporter = function(j$) {
565
568
  );
566
569
  throwCheckbox.checked = config.oneFailurePerSpec;
567
570
  throwCheckbox.onclick = function() {
568
- navigateWithNewParam('throwFailures', !config.oneFailurePerSpec);
571
+ navigateWithNewParam('oneFailurePerSpec', !config.oneFailurePerSpec);
569
572
  };
570
573
 
571
574
  var randomCheckbox = optionsMenuDom.querySelector(
@@ -635,7 +638,11 @@ jasmineRequire.HtmlReporter = function(j$) {
635
638
  suite = suite.parent;
636
639
  }
637
640
 
638
- return addToExistingQueryString('spec', els.join(' '));
641
+ // include window.location.pathname to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
642
+ return (
643
+ (window.location.pathname || '') +
644
+ addToExistingQueryString('spec', els.join(' '))
645
+ );
639
646
  }
640
647
 
641
648
  function addDeprecationWarnings(result, runnableType) {
@@ -699,11 +706,19 @@ jasmineRequire.HtmlReporter = function(j$) {
699
706
  }
700
707
 
701
708
  function specHref(result) {
702
- return addToExistingQueryString('spec', result.fullName);
709
+ // include window.location.pathname to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
710
+ return (
711
+ (window.location.pathname || '') +
712
+ addToExistingQueryString('spec', result.fullName)
713
+ );
703
714
  }
704
715
 
705
716
  function seedHref(seed) {
706
- return addToExistingQueryString('seed', seed);
717
+ // include window.location.pathname to fix issue with karma-jasmine-html-reporter in angular: see https://github.com/jasmine/jasmine/issues/1906
718
+ return (
719
+ (window.location.pathname || '') +
720
+ addToExistingQueryString('seed', seed)
721
+ );
707
722
  }
708
723
 
709
724
  function defaultQueryString(key, value) {
@@ -1,128 +1,271 @@
1
1
  @charset "UTF-8";
2
- body { overflow-y: scroll; }
3
-
4
- .jasmine_html-reporter { width: 100%; background-color: #eee; padding: 5px; margin: -8px; font-size: 11px; font-family: Monaco, "Lucida Console", monospace; line-height: 14px; color: #333; }
5
-
6
- .jasmine_html-reporter a { text-decoration: none; }
7
-
8
- .jasmine_html-reporter a:hover { text-decoration: underline; }
9
-
10
- .jasmine_html-reporter p, .jasmine_html-reporter h1, .jasmine_html-reporter h2, .jasmine_html-reporter h3, .jasmine_html-reporter h4, .jasmine_html-reporter h5, .jasmine_html-reporter h6 { margin: 0; line-height: 14px; }
11
-
12
- .jasmine_html-reporter .jasmine-banner, .jasmine_html-reporter .jasmine-symbol-summary, .jasmine_html-reporter .jasmine-summary, .jasmine_html-reporter .jasmine-result-message, .jasmine_html-reporter .jasmine-spec .jasmine-description, .jasmine_html-reporter .jasmine-spec-detail .jasmine-description, .jasmine_html-reporter .jasmine-alert .jasmine-bar, .jasmine_html-reporter .jasmine-stack-trace { padding-left: 9px; padding-right: 9px; }
13
-
14
- .jasmine_html-reporter .jasmine-banner { position: relative; }
15
-
16
- .jasmine_html-reporter .jasmine-banner .jasmine-title { background: url("data:image/png;base64,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") no-repeat; background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICB3aWR0aD0iNjgxLjk2MjUyIgogICBoZWlnaHQ9IjE4Ny41IgogICBpZD0ic3ZnMiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgICBpZD0iZGVmczYiPjxjbGlwUGF0aAogICAgICAgaWQ9ImNsaXBQYXRoMTgiPjxwYXRoCiAgICAgICAgIGQ9Ik0gMCwxNTAwIDAsMCBsIDU0NTUuNzQsMCAwLDE1MDAgTCAwLDE1MDAgeiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgyMCIgLz48L2NsaXBQYXRoPjwvZGVmcz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsMTg3LjUpIgogICAgIGlkPSJnMTAiPjxnCiAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMSwwLjEpIgogICAgICAgaWQ9ImcxMiI+PGcKICAgICAgICAgaWQ9ImcxNCI+PGcKICAgICAgICAgICBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGgxOCkiCiAgICAgICAgICAgaWQ9ImcxNiI+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTU0NCw1OTkuNDM0IGMgMC45MiwtNDAuMzUyIDI1LjY4LC04MS42MDIgNzEuNTMsLTgxLjYwMiAyNy41MSwwIDQ3LjY4LDEyLjgzMiA2MS40NCwzNS43NTQgMTIuODMsMjIuOTMgMTIuODMsNTYuODUyIDEyLjgzLDgyLjUyNyBsIDAsMzI5LjE4NCAtNzEuNTIsMCAwLDEwNC41NDMgMjY2LjgzLDAgMCwtMTA0LjU0MyAtNzAuNiwwIDAsLTM0NC43NyBjIDAsLTU4LjY5MSAtMy42OCwtMTA0LjUzMSAtNDQuOTMsLTE1Mi4yMTggLTM2LjY4LC00Mi4xOCAtOTYuMjgsLTY2LjAyIC0xNTMuMTQsLTY2LjAyIC0xMTcuMzcsMCAtMjA3LjI0LDc3Ljk0MSAtMjAyLjY0LDE5Ny4xNDUgbCAxMzAuMiwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMjIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDIzMDEuNCw2NjIuNjk1IGMgMCw4MC43MDMgLTY2Ljk0LDE0NS44MTMgLTE0Ny42MywxNDUuODEzIC04My40NCwwIC0xNDcuNjMsLTY4Ljc4MSAtMTQ3LjYzLC0xNTEuMzAxIDAsLTc5Ljc4NSA2Ni45NCwtMTQ1LjgwMSAxNDUuOCwtMTQ1LjgwMSA4NC4zNSwwIDE0OS40Niw2Ny44NTIgMTQ5LjQ2LDE1MS4yODkgeiBtIC0xLjgzLC0xODEuNTQ3IGMgLTM1Ljc3LC01NC4wOTcgLTkzLjUzLC03OC44NTkgLTE1Ny43MiwtNzguODU5IC0xNDAuMywwIC0yNTEuMjQsMTE2LjQ0OSAtMjUxLjI0LDI1NC45MTggMCwxNDIuMTI5IDExMy43LDI2MC40MSAyNTYuNzQsMjYwLjQxIDYzLjI3LDAgMTE4LjI5LC0yOS4zMzYgMTUyLjIyLC04Mi41MjMgbCAwLDY5LjY4NyAxNzUuMTQsMCAwLC0xMDQuNTI3IC02MS40NCwwIDAsLTI4MC41OTggNjEuNDQsMCAwLC0xMDQuNTI3IC0xNzUuMTQsMCAwLDY2LjAxOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAyNjIyLjMzLDU1Ny4yNTggYyAzLjY3LC00NC4wMTYgMzMuMDEsLTczLjM0OCA3OC44NiwtNzMuMzQ4IDMzLjkzLDAgNjYuOTMsMjMuODI0IDY2LjkzLDYwLjUwNCAwLDQ4LjYwNiAtNDUuODQsNTYuODU2IC04My40NCw2Ni45NDEgLTg1LjI4LDIyLjAwNCAtMTc4LjgxLDQ4LjYwNiAtMTc4LjgxLDE1NS44NzkgMCw5My41MzYgNzguODYsMTQ3LjYzMyAxNjUuOTgsMTQ3LjYzMyA0NCwwIDgzLjQzLC05LjE3NiAxMTAuOTQsLTQ0LjAwOCBsIDAsMzMuOTIyIDgyLjUzLDAgMCwtMTMyLjk2NSAtMTA4LjIxLDAgYyAtMS44MywzNC44NTYgLTI4LjQyLDU3Ljc3NCAtNjMuMjYsNTcuNzc0IC0zMC4yNiwwIC02Mi4zNSwtMTcuNDIyIC02Mi4zNSwtNTEuMzQ4IDAsLTQ1Ljg0NyA0NC45MywtNTUuOTMgODAuNjksLTY0LjE4IDg4LjAyLC0yMC4xNzUgMTgyLjQ3LC00Ny42OTUgMTgyLjQ3LC0xNTcuNzM0IDAsLTk5LjAyNyAtODMuNDQsLTE1NC4wMzkgLTE3NS4xMywtMTU0LjAzOSAtNDkuNTMsMCAtOTQuNDYsMTUuNTgyIC0xMjYuNTUsNTMuMTggbCAwLC00MC4zNCAtODUuMjcsMCAwLDE0Mi4xMjkgMTE0LjYyLDAiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGgyNiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMjk4OC4xOCw4MDAuMjU0IC02My4yNiwwIDAsMTA0LjUyNyAxNjUuMDUsMCAwLC03My4zNTUgYyAzMS4xOCw1MS4zNDcgNzguODYsODUuMjc3IDE0MS4yMSw4NS4yNzcgNjcuODUsMCAxMjQuNzEsLTQxLjI1OCAxNTIuMjEsLTEwMi42OTkgMjYuNiw2Mi4zNTEgOTIuNjIsMTAyLjY5OSAxNjAuNDcsMTAyLjY5OSA1My4xOSwwIDEwNS40NiwtMjIgMTQxLjIxLC02Mi4zNTEgMzguNTIsLTQ0LjkzOCAzOC41MiwtOTMuNTMyIDM4LjUyLC0xNDkuNDU3IGwgMCwtMTg1LjIzOSA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40MiwwIDAsMTA0LjUyNyA2My4yOCwwIDAsMTU3LjcxNSBjIDAsMzIuMTAyIDAsNjAuNTI3IC0xNC42Nyw4OC45NTcgLTE4LjM0LDI2LjU4MiAtNDguNjEsNDAuMzQ0IC03OS43Nyw0MC4zNDQgLTMwLjI2LDAgLTYzLjI4LC0xMi44NDQgLTgyLjUzLC0zNi42NzIgLTIyLjkzLC0yOS4zNTUgLTIyLjkzLC01Ni44NjMgLTIyLjkzLC05Mi42MjkgbCAwLC0xNTcuNzE1IDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM4LjQxLDAgMCwxMDQuNTI3IDYzLjI4LDAgMCwxNTAuMzgzIGMgMCwyOS4zNDggMCw2Ni4wMjMgLTE0LjY3LDkxLjY5OSAtMTUuNTksMjkuMzM2IC00Ny42OSw0NC45MzQgLTgwLjcsNDQuOTM0IC0zMS4xOCwwIC01Ny43NywtMTEuMDA4IC03Ny45NCwtMzUuNzc0IC0yNC43NywtMzAuMjUzIC0yNi42LC02Mi4zNDMgLTI2LjYsLTk5Ljk0MSBsIDAsLTE1MS4zMDEgNjMuMjcsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNiwwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAzOTk4LjY2LDk1MS41NDcgLTExMS44NywwIDAsMTE4LjI5MyAxMTEuODcsMCAwLC0xMTguMjkzIHogbSAwLC00MzEuODkxIDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM5LjMzLDAgMCwxMDQuNTI3IDY0LjE5LDAgMCwyODAuNTk4IC02My4yNywwIDAsMTA0LjUyNyAxNzUuMTQsMCAwLC0zODUuMTI1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzAiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDQxNTkuMTIsODAwLjI1NCAtNjMuMjcsMCAwLDEwNC41MjcgMTc1LjE0LDAgMCwtNjkuNjg3IGMgMjkuMzUsNTQuMTAxIDg0LjM2LDgwLjY5OSAxNDQuODcsODAuNjk5IDUzLjE5LDAgMTA1LjQ1LC0yMi4wMTYgMTQxLjIyLC02MC41MjcgNDAuMzQsLTQ0LjkzNCA0MS4yNiwtODguMDMyIDQxLjI2LC0xNDMuOTU3IGwgMCwtMTkxLjY1MyA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40LDAgMCwxMDQuNTI3IDYzLjI2LDAgMCwxNTguNjM3IGMgMCwzMC4yNjIgMCw2MS40MzQgLTE5LjI2LDg4LjAzNSAtMjAuMTcsMjYuNTgyIC01My4xOCwzOS40MTQgLTg2LjE5LDM5LjQxNCAtMzMuOTMsMCAtNjguNzcsLTEzLjc1IC04OC45NCwtNDEuMjUgLTIxLjA5LC0yNy41IC0yMS4wOSwtNjkuNjg3IC0yMS4wOSwtMTAyLjcwNyBsIDAsLTE0Mi4xMjkgNjMuMjYsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNywwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDMyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA1MDgyLjQ4LDcwMy45NjUgYyAtMTkuMjQsNzAuNjA1IC04MS42LDExNS41NDcgLTE1NC4wNCwxMTUuNTQ3IC02Ni4wNCwwIC0xMjkuMywtNTEuMzQ4IC0xNDMuMDUsLTExNS41NDcgbCAyOTcuMDksMCB6IG0gODUuMjcsLTE0NC44ODMgYyAtMzguNTEsLTkzLjUyMyAtMTI5LjI3LC0xNTYuNzkzIC0yMzEuMDUsLTE1Ni43OTMgLTE0My4wNywwIC0yNTcuNjgsMTExLjg3MSAtMjU3LjY4LDI1NS44MzYgMCwxNDQuODgzIDEwOS4xMiwyNjEuMzI4IDI1NC45MSwyNjEuMzI4IDY3Ljg3LDAgMTM1LjcyLC0zMC4yNTggMTgzLjM5LC03OC44NjMgNDguNjIsLTUxLjM0NCA2OC43OSwtMTEzLjY5NSA2OC43OSwtMTgzLjM4MyBsIC0zLjY3LC0zOS40MzQgLTM5Ni4xMywwIGMgMTQuNjcsLTY3Ljg2MyA3Ny4wMywtMTE3LjM2MyAxNDYuNzIsLTExNy4zNjMgNDguNTksMCA5MC43NiwxOC4zMjggMTE4LjI4LDU4LjY3MiBsIDExNi40NCwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDY5MC44OTUsODUwLjcwMyA5MC43NSwwIDIyLjU0MywzMS4wMzUgMCwyNDMuMTIyIC0xMzUuODI5LDAgMCwtMjQzLjE0MSAyMi41MzYsLTMxLjAxNiIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDM2IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA2MzIuMzk1LDc0Mi4yNTggMjguMDM5LDg2LjMwNCAtMjIuNTUxLDMxLjA0IC0yMzEuMjIzLDc1LjEyOCAtNDEuOTc2LC0xMjkuMTgzIDIzMS4yNTcsLTc1LjEzNyAzNi40NTQsMTEuODQ4IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzgiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDcxNy40NDksNjUzLjEwNSAtNzMuNDEsNTMuMzYgLTM2LjQ4OCwtMTEuODc1IC0xNDIuOTAzLC0xOTYuNjkyIDEwOS44ODMsLTc5LjgyOCAxNDIuOTE4LDE5Ni43MDMgMCwzOC4zMzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0MCIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gODI4LjUyLDcwNi40NjUgLTczLjQyNiwtNTMuMzQgMC4wMTEsLTM4LjM1OSBMIDg5OC4wMDQsNDE4LjA3IDEwMDcuOSw0OTcuODk4IDg2NC45NzMsNjk0LjYwOSA4MjguNTIsNzA2LjQ2NSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA4MTIuMDg2LDgyOC41ODYgMjguMDU1LC04Ni4zMiAzNi40ODQsLTExLjgzNiAyMzEuMjI1LDc1LjExNyAtNDEuOTcsMTI5LjE4MyAtMjMxLjIzOSwtNzUuMTQgLTIyLjU1NSwtMzEuMDA0IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNDQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDczNi4zMDEsMTMzNS44OCBjIC0zMjMuMDQ3LDAgLTU4NS44NzUsLTI2Mi43OCAtNTg1Ljg3NSwtNTg1Ljc4MiAwLC0zMjMuMTE4IDI2Mi44MjgsLTU4NS45NzcgNTg1Ljg3NSwtNTg1Ljk3NyAzMjMuMDE5LDAgNTg1LjgwOSwyNjIuODU5IDU4NS44MDksNTg1Ljk3NyAwLDMyMy4wMDIgLTI2Mi43OSw1ODUuNzgyIC01ODUuODA5LDU4NS43ODIgbCAwLDAgeiBtIDAsLTExOC42MSBjIDI1Ny45NzIsMCA0NjcuMTg5LC0yMDkuMTMgNDY3LjE4OSwtNDY3LjE3MiAwLC0yNTguMTI5IC0yMDkuMjE3LC00NjcuMzQ4IC00NjcuMTg5LC00NjcuMzQ4IC0yNTguMDc0LDAgLTQ2Ny4yNTQsMjA5LjIxOSAtNDY3LjI1NCw0NjcuMzQ4IDAsMjU4LjA0MiAyMDkuMTgsNDY3LjE3MiA0NjcuMjU0LDQ2Ny4xNzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0NiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTA5MS4xMyw2MTkuODgzIC0xNzUuNzcxLDU3LjEyMSAxMS42MjksMzUuODA4IDE3NS43NjIsLTU3LjEyMSAtMTEuNjIsLTM1LjgwOCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQ4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA4NjYuOTU3LDkwMi4wNzQgODM2LjUsOTI0LjE5OSA5NDUuMTIxLDEwNzMuNzMgOTc1LjU4NiwxMDUxLjYxIDg2Ni45NTcsOTAyLjA3NCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDUwIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA2MDcuNDY1LDkwMy40NDUgNDk4Ljg1NSwxMDUyLjk3IDUyOS4zMiwxMDc1LjEgNjM3LjkzLDkyNS41NjYgNjA3LjQ2NSw5MDMuNDQ1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDM4MC42ODgsNjIyLjEyOSAtMTEuNjI2LDM1LjgwMSAxNzUuNzU4LDU3LjA5IDExLjYyMSwtMzUuODAxIC0xNzUuNzUzLC01Ny4wOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDU0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA3MTYuMjg5LDM3Ni41OSAzNy42NDA2LDAgMCwxODQuODE2IC0zNy42NDA2LDAgMCwtMTg0LjgxNiB6IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTYiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L2c+PC9nPjwvZz48L3N2Zz4=") no-repeat, none; -moz-background-size: 100%; -o-background-size: 100%; -webkit-background-size: 100%; background-size: 100%; display: block; float: left; width: 90px; height: 25px; }
17
-
18
- .jasmine_html-reporter .jasmine-banner .jasmine-version { margin-left: 14px; position: relative; top: 6px; }
19
-
20
- .jasmine_html-reporter #jasmine_content { position: fixed; right: 100%; }
21
-
22
- .jasmine_html-reporter .jasmine-version { color: #aaa; }
23
-
24
- .jasmine_html-reporter .jasmine-banner { margin-top: 14px; }
25
-
26
- .jasmine_html-reporter .jasmine-duration { color: #fff; float: right; line-height: 28px; padding-right: 9px; }
27
-
28
- .jasmine_html-reporter .jasmine-symbol-summary { overflow: hidden; margin: 14px 0; }
29
-
30
- .jasmine_html-reporter .jasmine-symbol-summary li { display: inline-block; height: 10px; width: 14px; font-size: 16px; }
31
-
32
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-passed { font-size: 14px; }
33
-
34
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-passed:before { color: #007069; content: "•"; }
35
-
36
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-failed { line-height: 9px; }
37
-
38
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-failed:before { color: #ca3a11; content: "×"; font-weight: bold; margin-left: -1px; }
39
-
40
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-excluded { font-size: 14px; }
41
-
42
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-excluded:before { color: #bababa; content: "•"; }
43
-
44
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-excluded-no-display { font-size: 14px; display: none; }
45
-
46
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-pending { line-height: 17px; }
47
-
48
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-pending:before { color: #ba9d37; content: "*"; }
49
-
50
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-empty { font-size: 14px; }
51
-
52
- .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-empty:before { color: #ba9d37; content: "•"; }
53
-
54
- .jasmine_html-reporter .jasmine-run-options { float: right; margin-right: 5px; border: 1px solid #8a4182; color: #8a4182; position: relative; line-height: 20px; }
55
-
56
- .jasmine_html-reporter .jasmine-run-options .jasmine-trigger { cursor: pointer; padding: 8px 16px; }
57
-
58
- .jasmine_html-reporter .jasmine-run-options .jasmine-payload { position: absolute; display: none; right: -1px; border: 1px solid #8a4182; background-color: #eee; white-space: nowrap; padding: 4px 8px; }
59
-
60
- .jasmine_html-reporter .jasmine-run-options .jasmine-payload.jasmine-open { display: block; }
61
-
62
- .jasmine_html-reporter .jasmine-bar { line-height: 28px; font-size: 14px; display: block; color: #eee; }
63
-
64
- .jasmine_html-reporter .jasmine-bar.jasmine-failed, .jasmine_html-reporter .jasmine-bar.jasmine-errored { background-color: #ca3a11; border-bottom: 1px solid #eee; }
65
-
66
- .jasmine_html-reporter .jasmine-bar.jasmine-passed { background-color: #007069; }
67
-
68
- .jasmine_html-reporter .jasmine-bar.jasmine-incomplete { background-color: #bababa; }
69
-
70
- .jasmine_html-reporter .jasmine-bar.jasmine-skipped { background-color: #bababa; }
71
-
72
- .jasmine_html-reporter .jasmine-bar.jasmine-warning { background-color: #ba9d37; color: #333; }
73
-
74
- .jasmine_html-reporter .jasmine-bar.jasmine-menu { background-color: #fff; color: #aaa; }
75
-
76
- .jasmine_html-reporter .jasmine-bar.jasmine-menu a { color: #333; }
77
-
78
- .jasmine_html-reporter .jasmine-bar a { color: white; }
79
-
80
- .jasmine_html-reporter.jasmine-spec-list .jasmine-bar.jasmine-menu.jasmine-failure-list, .jasmine_html-reporter.jasmine-spec-list .jasmine-results .jasmine-failures { display: none; }
81
-
82
- .jasmine_html-reporter.jasmine-failure-list .jasmine-bar.jasmine-menu.jasmine-spec-list, .jasmine_html-reporter.jasmine-failure-list .jasmine-summary { display: none; }
83
-
84
- .jasmine_html-reporter .jasmine-results { margin-top: 14px; }
85
-
86
- .jasmine_html-reporter .jasmine-summary { margin-top: 14px; }
87
-
88
- .jasmine_html-reporter .jasmine-summary ul { list-style-type: none; margin-left: 14px; padding-top: 0; padding-left: 0; }
89
-
90
- .jasmine_html-reporter .jasmine-summary ul.jasmine-suite { margin-top: 7px; margin-bottom: 7px; }
91
-
92
- .jasmine_html-reporter .jasmine-summary li.jasmine-passed a { color: #007069; }
93
-
94
- .jasmine_html-reporter .jasmine-summary li.jasmine-failed a { color: #ca3a11; }
95
-
96
- .jasmine_html-reporter .jasmine-summary li.jasmine-empty a { color: #ba9d37; }
97
-
98
- .jasmine_html-reporter .jasmine-summary li.jasmine-pending a { color: #ba9d37; }
99
-
100
- .jasmine_html-reporter .jasmine-summary li.jasmine-excluded a { color: #bababa; }
101
-
102
- .jasmine_html-reporter .jasmine-specs li.jasmine-passed a:before { content: "• "; }
103
-
104
- .jasmine_html-reporter .jasmine-specs li.jasmine-failed a:before { content: "× "; }
105
-
106
- .jasmine_html-reporter .jasmine-specs li.jasmine-empty a:before { content: "* "; }
107
-
108
- .jasmine_html-reporter .jasmine-specs li.jasmine-pending a:before { content: "• "; }
109
-
110
- .jasmine_html-reporter .jasmine-specs li.jasmine-excluded a:before { content: "• "; }
111
-
112
- .jasmine_html-reporter .jasmine-description + .jasmine-suite { margin-top: 0; }
113
-
114
- .jasmine_html-reporter .jasmine-suite { margin-top: 14px; }
115
-
116
- .jasmine_html-reporter .jasmine-suite a { color: #333; }
117
-
118
- .jasmine_html-reporter .jasmine-failures .jasmine-spec-detail { margin-bottom: 28px; }
119
-
120
- .jasmine_html-reporter .jasmine-failures .jasmine-spec-detail .jasmine-description { background-color: #ca3a11; color: white; }
121
-
122
- .jasmine_html-reporter .jasmine-failures .jasmine-spec-detail .jasmine-description a { color: white; }
123
-
124
- .jasmine_html-reporter .jasmine-result-message { padding-top: 14px; color: #333; white-space: pre-wrap; }
125
-
126
- .jasmine_html-reporter .jasmine-result-message span.jasmine-result { display: block; }
127
-
128
- .jasmine_html-reporter .jasmine-stack-trace { margin: 5px 0 0 0; max-height: 224px; overflow: auto; line-height: 18px; color: #666; border: 1px solid #ddd; background: white; white-space: pre; }
2
+ body {
3
+ overflow-y: scroll;
4
+ }
5
+
6
+ .jasmine_html-reporter {
7
+ width: 100%;
8
+ background-color: #eee;
9
+ padding: 5px;
10
+ margin: -8px;
11
+ font-size: 11px;
12
+ font-family: Monaco, "Lucida Console", monospace;
13
+ line-height: 14px;
14
+ color: #333;
15
+ }
16
+ .jasmine_html-reporter a {
17
+ text-decoration: none;
18
+ }
19
+ .jasmine_html-reporter a:hover {
20
+ text-decoration: underline;
21
+ }
22
+ .jasmine_html-reporter p, .jasmine_html-reporter h1, .jasmine_html-reporter h2, .jasmine_html-reporter h3, .jasmine_html-reporter h4, .jasmine_html-reporter h5, .jasmine_html-reporter h6 {
23
+ margin: 0;
24
+ line-height: 14px;
25
+ }
26
+ .jasmine_html-reporter .jasmine-banner,
27
+ .jasmine_html-reporter .jasmine-symbol-summary,
28
+ .jasmine_html-reporter .jasmine-summary,
29
+ .jasmine_html-reporter .jasmine-result-message,
30
+ .jasmine_html-reporter .jasmine-spec .jasmine-description,
31
+ .jasmine_html-reporter .jasmine-spec-detail .jasmine-description,
32
+ .jasmine_html-reporter .jasmine-alert .jasmine-bar,
33
+ .jasmine_html-reporter .jasmine-stack-trace {
34
+ padding-left: 9px;
35
+ padding-right: 9px;
36
+ }
37
+ .jasmine_html-reporter .jasmine-banner {
38
+ position: relative;
39
+ }
40
+ .jasmine_html-reporter .jasmine-banner .jasmine-title {
41
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAZCAMAAACGusnyAAACdlBMVEX/////AP+AgICqVaqAQICZM5mAVYCSSZKAQICOOY6ATYCLRouAQICJO4mSSYCIRIiPQICHPIeOR4CGQ4aMQICGPYaLRoCFQ4WKQICPPYWJRYCOQoSJQICNPoSIRICMQoSHQICHRICKQoOHQICKPoOJO4OJQYOMQICMQ4CIQYKLQICIPoKLQ4CKQICNPoKJQISMQ4KJQoSLQYKJQISLQ4KIQoSKQYKIQICIQISMQoSKQYKLQIOLQoOJQYGLQIOKQIOMQoGKQYOLQYGKQIOLQoGJQYOJQIOKQYGJQIOKQoGKQIGLQIKLQ4KKQoGLQYKJQIGKQYKJQIGKQIKJQoGKQYKLQIGKQYKLQIOJQoKKQoOJQYKKQIOJQoKKQoOKQIOLQoKKQYOLQYKJQIOKQoKKQYKKQoKJQYOKQYKLQIOKQoKLQYOKQYKLQIOJQoGKQYKJQYGJQoGKQYKLQoGLQYGKQoGJQYKKQYGJQIKKQoGJQYKLQIKKQYGLQYKKQYGKQYGKQYKJQYOKQoKJQYOKQYKLQYOLQYOKQYKLQYOKQoKKQYKKQYOKQYOJQYKKQYKLQYKKQIKKQoKKQYKKQYKKQoKJQIKKQYKLQYKKQYKKQIKKQYKKQYKKQYKKQIKKQYKJQYGLQYGKQYKKQYKKQYGKQIKKQYGKQYOJQoKKQYOLQYKKQYOKQoKKQYKKQoKKQYKKQYKJQYKLQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKJQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKLQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKKQYKmIDpEAAAA0XRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAiIyQlJycoKissLS4wMTQ1Njc4OTo7PDw+P0BCQ0RISUpLTE1OUFNUVVdYWFlaW15fYGFiY2ZnaGlqa2xtb3BxcnN0dnh5ent8fX5/gIGChIWIioyNjo+QkZOUlZaYmZqbnJ2eoKGio6WmqKmsra6vsLGztre4ubq7vL2+wMHDxMjJysvNzs/Q0dLU1tfY2dvc3t/g4eLj5ebn6Onq6+zt7u/w8vP09fb3+Pn6+/z9/vkVQXAAAAMaSURBVHhe5dXxV1N1GMfxz2ABbDgIAm5VDJOyVDIJLUMaVpBWUZUaGbmqoGpZRSiGiRWp6KoZ5AB0ZY50RImZQIlahKkMYXv/R90dBvET/rJfOr3Ouc8v99zPec59zvf56j+vYKlViSf7250X4Mr3O29Tgq08BdGB4DhcekEJ5YkQKFsgWZdtj9JpV+I8xPjLFqkrsEIqO8PHSpis36jWazcqjEsfJjkvRssVU37SdIOu4XCf5vEJPsnwJpnRNU9JmxhMk8l1gehIrq7hTFjzOD+Vf88629qKMJVNltInFeRexRQyJlNeqd1iGDlSzrIUIyXbyFfm3RYprcQRe7lqtWyGYbfc6dT0R2vmdOOkX3u55C1rP37ftiH+tDby4r/RBT0w8TyEkr+epB9XgPDmSYYWbrhCuFYaIyw3fDQAXTnSkh+ANofiHmWf9l+FY1I90FdQTetstO00o23novzVsJ7uB3/C5TkbjRwZ5JerwV4iRWq9HFbFMaK/d0TYqayRiQPuIxxS3Bu8JWU90/60tKi7vkhaznez0a/TbVOKj5CaOZh6fWG6/Lyv9B/ZLR1gw/S/fpbeVD3MCW1li6SvWDOn65tr99/uvWtBS0XDm4s1t+sOHpG0kpBKx/l77wOSnxLpcx6TXmXLTPQOKYOf9Q1dfr8/SJ2mFdCvl1Yl93DiHUZvXeLJbGSzYu5gVJ2slbSakOR8dxCq5adQ2oFLqsE9Ex3L4qQO0eOPeU5x56bypXp4onSEb5OkICX6lDat55TeoztNKQcJaakrz9KCb95oD69IKq+yKW4XPjknaS52V0TZqE2cTtXjcHSCRmUO88e+85hj3EP74i9p8pylw7lxgMDyyl6OV7ZejnjNMfatu87LxRbH0IS35gt2a4ZjmGpVBdKK3Wr6INk8jWWSGqbA55CKgjBRC6E9w78ydTg3ABS3AFV1QN0Y4Aa2pgEjWnQURj9L0ayK6R2ysEqxHUKzYnLvvyU+i9KM2JHJzE4vyZOyDcOwOsySajeLPc8sNvPJkFlyJd20wpqAzZeAfZ3oWybxd+P/3j+SG3uSBdf2VQAAAABJRU5ErkJggg==") no-repeat;
42
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICB3aWR0aD0iNjgxLjk2MjUyIgogICBoZWlnaHQ9IjE4Ny41IgogICBpZD0ic3ZnMiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgICBpZD0iZGVmczYiPjxjbGlwUGF0aAogICAgICAgaWQ9ImNsaXBQYXRoMTgiPjxwYXRoCiAgICAgICAgIGQ9Ik0gMCwxNTAwIDAsMCBsIDU0NTUuNzQsMCAwLDE1MDAgTCAwLDE1MDAgeiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgyMCIgLz48L2NsaXBQYXRoPjwvZGVmcz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsMTg3LjUpIgogICAgIGlkPSJnMTAiPjxnCiAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMSwwLjEpIgogICAgICAgaWQ9ImcxMiI+PGcKICAgICAgICAgaWQ9ImcxNCI+PGcKICAgICAgICAgICBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGgxOCkiCiAgICAgICAgICAgaWQ9ImcxNiI+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTU0NCw1OTkuNDM0IGMgMC45MiwtNDAuMzUyIDI1LjY4LC04MS42MDIgNzEuNTMsLTgxLjYwMiAyNy41MSwwIDQ3LjY4LDEyLjgzMiA2MS40NCwzNS43NTQgMTIuODMsMjIuOTMgMTIuODMsNTYuODUyIDEyLjgzLDgyLjUyNyBsIDAsMzI5LjE4NCAtNzEuNTIsMCAwLDEwNC41NDMgMjY2LjgzLDAgMCwtMTA0LjU0MyAtNzAuNiwwIDAsLTM0NC43NyBjIDAsLTU4LjY5MSAtMy42OCwtMTA0LjUzMSAtNDQuOTMsLTE1Mi4yMTggLTM2LjY4LC00Mi4xOCAtOTYuMjgsLTY2LjAyIC0xNTMuMTQsLTY2LjAyIC0xMTcuMzcsMCAtMjA3LjI0LDc3Ljk0MSAtMjAyLjY0LDE5Ny4xNDUgbCAxMzAuMiwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMjIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDIzMDEuNCw2NjIuNjk1IGMgMCw4MC43MDMgLTY2Ljk0LDE0NS44MTMgLTE0Ny42MywxNDUuODEzIC04My40NCwwIC0xNDcuNjMsLTY4Ljc4MSAtMTQ3LjYzLC0xNTEuMzAxIDAsLTc5Ljc4NSA2Ni45NCwtMTQ1LjgwMSAxNDUuOCwtMTQ1LjgwMSA4NC4zNSwwIDE0OS40Niw2Ny44NTIgMTQ5LjQ2LDE1MS4yODkgeiBtIC0xLjgzLC0xODEuNTQ3IGMgLTM1Ljc3LC01NC4wOTcgLTkzLjUzLC03OC44NTkgLTE1Ny43MiwtNzguODU5IC0xNDAuMywwIC0yNTEuMjQsMTE2LjQ0OSAtMjUxLjI0LDI1NC45MTggMCwxNDIuMTI5IDExMy43LDI2MC40MSAyNTYuNzQsMjYwLjQxIDYzLjI3LDAgMTE4LjI5LC0yOS4zMzYgMTUyLjIyLC04Mi41MjMgbCAwLDY5LjY4NyAxNzUuMTQsMCAwLC0xMDQuNTI3IC02MS40NCwwIDAsLTI4MC41OTggNjEuNDQsMCAwLC0xMDQuNTI3IC0xNzUuMTQsMCAwLDY2LjAxOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAyNjIyLjMzLDU1Ny4yNTggYyAzLjY3LC00NC4wMTYgMzMuMDEsLTczLjM0OCA3OC44NiwtNzMuMzQ4IDMzLjkzLDAgNjYuOTMsMjMuODI0IDY2LjkzLDYwLjUwNCAwLDQ4LjYwNiAtNDUuODQsNTYuODU2IC04My40NCw2Ni45NDEgLTg1LjI4LDIyLjAwNCAtMTc4LjgxLDQ4LjYwNiAtMTc4LjgxLDE1NS44NzkgMCw5My41MzYgNzguODYsMTQ3LjYzMyAxNjUuOTgsMTQ3LjYzMyA0NCwwIDgzLjQzLC05LjE3NiAxMTAuOTQsLTQ0LjAwOCBsIDAsMzMuOTIyIDgyLjUzLDAgMCwtMTMyLjk2NSAtMTA4LjIxLDAgYyAtMS44MywzNC44NTYgLTI4LjQyLDU3Ljc3NCAtNjMuMjYsNTcuNzc0IC0zMC4yNiwwIC02Mi4zNSwtMTcuNDIyIC02Mi4zNSwtNTEuMzQ4IDAsLTQ1Ljg0NyA0NC45MywtNTUuOTMgODAuNjksLTY0LjE4IDg4LjAyLC0yMC4xNzUgMTgyLjQ3LC00Ny42OTUgMTgyLjQ3LC0xNTcuNzM0IDAsLTk5LjAyNyAtODMuNDQsLTE1NC4wMzkgLTE3NS4xMywtMTU0LjAzOSAtNDkuNTMsMCAtOTQuNDYsMTUuNTgyIC0xMjYuNTUsNTMuMTggbCAwLC00MC4zNCAtODUuMjcsMCAwLDE0Mi4xMjkgMTE0LjYyLDAiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGgyNiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMjk4OC4xOCw4MDAuMjU0IC02My4yNiwwIDAsMTA0LjUyNyAxNjUuMDUsMCAwLC03My4zNTUgYyAzMS4xOCw1MS4zNDcgNzguODYsODUuMjc3IDE0MS4yMSw4NS4yNzcgNjcuODUsMCAxMjQuNzEsLTQxLjI1OCAxNTIuMjEsLTEwMi42OTkgMjYuNiw2Mi4zNTEgOTIuNjIsMTAyLjY5OSAxNjAuNDcsMTAyLjY5OSA1My4xOSwwIDEwNS40NiwtMjIgMTQxLjIxLC02Mi4zNTEgMzguNTIsLTQ0LjkzOCAzOC41MiwtOTMuNTMyIDM4LjUyLC0xNDkuNDU3IGwgMCwtMTg1LjIzOSA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40MiwwIDAsMTA0LjUyNyA2My4yOCwwIDAsMTU3LjcxNSBjIDAsMzIuMTAyIDAsNjAuNTI3IC0xNC42Nyw4OC45NTcgLTE4LjM0LDI2LjU4MiAtNDguNjEsNDAuMzQ0IC03OS43Nyw0MC4zNDQgLTMwLjI2LDAgLTYzLjI4LC0xMi44NDQgLTgyLjUzLC0zNi42NzIgLTIyLjkzLC0yOS4zNTUgLTIyLjkzLC01Ni44NjMgLTIyLjkzLC05Mi42MjkgbCAwLC0xNTcuNzE1IDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM4LjQxLDAgMCwxMDQuNTI3IDYzLjI4LDAgMCwxNTAuMzgzIGMgMCwyOS4zNDggMCw2Ni4wMjMgLTE0LjY3LDkxLjY5OSAtMTUuNTksMjkuMzM2IC00Ny42OSw0NC45MzQgLTgwLjcsNDQuOTM0IC0zMS4xOCwwIC01Ny43NywtMTEuMDA4IC03Ny45NCwtMzUuNzc0IC0yNC43NywtMzAuMjUzIC0yNi42LC02Mi4zNDMgLTI2LjYsLTk5Ljk0MSBsIDAsLTE1MS4zMDEgNjMuMjcsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNiwwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAzOTk4LjY2LDk1MS41NDcgLTExMS44NywwIDAsMTE4LjI5MyAxMTEuODcsMCAwLC0xMTguMjkzIHogbSAwLC00MzEuODkxIDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM5LjMzLDAgMCwxMDQuNTI3IDY0LjE5LDAgMCwyODAuNTk4IC02My4yNywwIDAsMTA0LjUyNyAxNzUuMTQsMCAwLC0zODUuMTI1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzAiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDQxNTkuMTIsODAwLjI1NCAtNjMuMjcsMCAwLDEwNC41MjcgMTc1LjE0LDAgMCwtNjkuNjg3IGMgMjkuMzUsNTQuMTAxIDg0LjM2LDgwLjY5OSAxNDQuODcsODAuNjk5IDUzLjE5LDAgMTA1LjQ1LC0yMi4wMTYgMTQxLjIyLC02MC41MjcgNDAuMzQsLTQ0LjkzNCA0MS4yNiwtODguMDMyIDQxLjI2LC0xNDMuOTU3IGwgMCwtMTkxLjY1MyA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40LDAgMCwxMDQuNTI3IDYzLjI2LDAgMCwxNTguNjM3IGMgMCwzMC4yNjIgMCw2MS40MzQgLTE5LjI2LDg4LjAzNSAtMjAuMTcsMjYuNTgyIC01My4xOCwzOS40MTQgLTg2LjE5LDM5LjQxNCAtMzMuOTMsMCAtNjguNzcsLTEzLjc1IC04OC45NCwtNDEuMjUgLTIxLjA5LC0yNy41IC0yMS4wOSwtNjkuNjg3IC0yMS4wOSwtMTAyLjcwNyBsIDAsLTE0Mi4xMjkgNjMuMjYsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNywwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDMyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA1MDgyLjQ4LDcwMy45NjUgYyAtMTkuMjQsNzAuNjA1IC04MS42LDExNS41NDcgLTE1NC4wNCwxMTUuNTQ3IC02Ni4wNCwwIC0xMjkuMywtNTEuMzQ4IC0xNDMuMDUsLTExNS41NDcgbCAyOTcuMDksMCB6IG0gODUuMjcsLTE0NC44ODMgYyAtMzguNTEsLTkzLjUyMyAtMTI5LjI3LC0xNTYuNzkzIC0yMzEuMDUsLTE1Ni43OTMgLTE0My4wNywwIC0yNTcuNjgsMTExLjg3MSAtMjU3LjY4LDI1NS44MzYgMCwxNDQuODgzIDEwOS4xMiwyNjEuMzI4IDI1NC45MSwyNjEuMzI4IDY3Ljg3LDAgMTM1LjcyLC0zMC4yNTggMTgzLjM5LC03OC44NjMgNDguNjIsLTUxLjM0NCA2OC43OSwtMTEzLjY5NSA2OC43OSwtMTgzLjM4MyBsIC0zLjY3LC0zOS40MzQgLTM5Ni4xMywwIGMgMTQuNjcsLTY3Ljg2MyA3Ny4wMywtMTE3LjM2MyAxNDYuNzIsLTExNy4zNjMgNDguNTksMCA5MC43NiwxOC4zMjggMTE4LjI4LDU4LjY3MiBsIDExNi40NCwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDY5MC44OTUsODUwLjcwMyA5MC43NSwwIDIyLjU0MywzMS4wMzUgMCwyNDMuMTIyIC0xMzUuODI5LDAgMCwtMjQzLjE0MSAyMi41MzYsLTMxLjAxNiIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDM2IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA2MzIuMzk1LDc0Mi4yNTggMjguMDM5LDg2LjMwNCAtMjIuNTUxLDMxLjA0IC0yMzEuMjIzLDc1LjEyOCAtNDEuOTc2LC0xMjkuMTgzIDIzMS4yNTcsLTc1LjEzNyAzNi40NTQsMTEuODQ4IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzgiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDcxNy40NDksNjUzLjEwNSAtNzMuNDEsNTMuMzYgLTM2LjQ4OCwtMTEuODc1IC0xNDIuOTAzLC0xOTYuNjkyIDEwOS44ODMsLTc5LjgyOCAxNDIuOTE4LDE5Ni43MDMgMCwzOC4zMzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0MCIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gODI4LjUyLDcwNi40NjUgLTczLjQyNiwtNTMuMzQgMC4wMTEsLTM4LjM1OSBMIDg5OC4wMDQsNDE4LjA3IDEwMDcuOSw0OTcuODk4IDg2NC45NzMsNjk0LjYwOSA4MjguNTIsNzA2LjQ2NSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA4MTIuMDg2LDgyOC41ODYgMjguMDU1LC04Ni4zMiAzNi40ODQsLTExLjgzNiAyMzEuMjI1LDc1LjExNyAtNDEuOTcsMTI5LjE4MyAtMjMxLjIzOSwtNzUuMTQgLTIyLjU1NSwtMzEuMDA0IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNDQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDczNi4zMDEsMTMzNS44OCBjIC0zMjMuMDQ3LDAgLTU4NS44NzUsLTI2Mi43OCAtNTg1Ljg3NSwtNTg1Ljc4MiAwLC0zMjMuMTE4IDI2Mi44MjgsLTU4NS45NzcgNTg1Ljg3NSwtNTg1Ljk3NyAzMjMuMDE5LDAgNTg1LjgwOSwyNjIuODU5IDU4NS44MDksNTg1Ljk3NyAwLDMyMy4wMDIgLTI2Mi43OSw1ODUuNzgyIC01ODUuODA5LDU4NS43ODIgbCAwLDAgeiBtIDAsLTExOC42MSBjIDI1Ny45NzIsMCA0NjcuMTg5LC0yMDkuMTMgNDY3LjE4OSwtNDY3LjE3MiAwLC0yNTguMTI5IC0yMDkuMjE3LC00NjcuMzQ4IC00NjcuMTg5LC00NjcuMzQ4IC0yNTguMDc0LDAgLTQ2Ny4yNTQsMjA5LjIxOSAtNDY3LjI1NCw0NjcuMzQ4IDAsMjU4LjA0MiAyMDkuMTgsNDY3LjE3MiA0NjcuMjU0LDQ2Ny4xNzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0NiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTA5MS4xMyw2MTkuODgzIC0xNzUuNzcxLDU3LjEyMSAxMS42MjksMzUuODA4IDE3NS43NjIsLTU3LjEyMSAtMTEuNjIsLTM1LjgwOCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQ4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA4NjYuOTU3LDkwMi4wNzQgODM2LjUsOTI0LjE5OSA5NDUuMTIxLDEwNzMuNzMgOTc1LjU4NiwxMDUxLjYxIDg2Ni45NTcsOTAyLjA3NCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDUwIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA2MDcuNDY1LDkwMy40NDUgNDk4Ljg1NSwxMDUyLjk3IDUyOS4zMiwxMDc1LjEgNjM3LjkzLDkyNS41NjYgNjA3LjQ2NSw5MDMuNDQ1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDM4MC42ODgsNjIyLjEyOSAtMTEuNjI2LDM1LjgwMSAxNzUuNzU4LDU3LjA5IDExLjYyMSwtMzUuODAxIC0xNzUuNzUzLC01Ny4wOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDU0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA3MTYuMjg5LDM3Ni41OSAzNy42NDA2LDAgMCwxODQuODE2IC0zNy42NDA2LDAgMCwtMTg0LjgxNiB6IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTYiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L2c+PC9nPjwvZz48L3N2Zz4=") no-repeat, none;
43
+ -moz-background-size: 100%;
44
+ -o-background-size: 100%;
45
+ -webkit-background-size: 100%;
46
+ background-size: 100%;
47
+ display: block;
48
+ float: left;
49
+ width: 90px;
50
+ height: 25px;
51
+ }
52
+ .jasmine_html-reporter .jasmine-banner .jasmine-version {
53
+ margin-left: 14px;
54
+ position: relative;
55
+ top: 6px;
56
+ }
57
+ .jasmine_html-reporter #jasmine_content {
58
+ position: fixed;
59
+ right: 100%;
60
+ }
61
+ .jasmine_html-reporter .jasmine-version {
62
+ color: #aaa;
63
+ }
64
+ .jasmine_html-reporter .jasmine-banner {
65
+ margin-top: 14px;
66
+ }
67
+ .jasmine_html-reporter .jasmine-duration {
68
+ color: #fff;
69
+ float: right;
70
+ line-height: 28px;
71
+ padding-right: 9px;
72
+ }
73
+ .jasmine_html-reporter .jasmine-symbol-summary {
74
+ overflow: hidden;
75
+ margin: 14px 0;
76
+ }
77
+ .jasmine_html-reporter .jasmine-symbol-summary li {
78
+ display: inline-block;
79
+ height: 10px;
80
+ width: 14px;
81
+ font-size: 16px;
82
+ }
83
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-passed {
84
+ font-size: 14px;
85
+ }
86
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-passed:before {
87
+ color: #007069;
88
+ content: "•";
89
+ }
90
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-failed {
91
+ line-height: 9px;
92
+ }
93
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-failed:before {
94
+ color: #ca3a11;
95
+ content: "×";
96
+ font-weight: bold;
97
+ margin-left: -1px;
98
+ }
99
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-excluded {
100
+ font-size: 14px;
101
+ }
102
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-excluded:before {
103
+ color: #bababa;
104
+ content: "";
105
+ }
106
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-excluded-no-display {
107
+ font-size: 14px;
108
+ display: none;
109
+ }
110
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-pending {
111
+ line-height: 17px;
112
+ }
113
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-pending:before {
114
+ color: #ba9d37;
115
+ content: "*";
116
+ }
117
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-empty {
118
+ font-size: 14px;
119
+ }
120
+ .jasmine_html-reporter .jasmine-symbol-summary li.jasmine-empty:before {
121
+ color: #ba9d37;
122
+ content: "•";
123
+ }
124
+ .jasmine_html-reporter .jasmine-run-options {
125
+ float: right;
126
+ margin-right: 5px;
127
+ border: 1px solid #8a4182;
128
+ color: #8a4182;
129
+ position: relative;
130
+ line-height: 20px;
131
+ }
132
+ .jasmine_html-reporter .jasmine-run-options .jasmine-trigger {
133
+ cursor: pointer;
134
+ padding: 8px 16px;
135
+ }
136
+ .jasmine_html-reporter .jasmine-run-options .jasmine-payload {
137
+ position: absolute;
138
+ display: none;
139
+ right: -1px;
140
+ border: 1px solid #8a4182;
141
+ background-color: #eee;
142
+ white-space: nowrap;
143
+ padding: 4px 8px;
144
+ }
145
+ .jasmine_html-reporter .jasmine-run-options .jasmine-payload.jasmine-open {
146
+ display: block;
147
+ }
148
+ .jasmine_html-reporter .jasmine-bar {
149
+ line-height: 28px;
150
+ font-size: 14px;
151
+ display: block;
152
+ color: #eee;
153
+ }
154
+ .jasmine_html-reporter .jasmine-bar.jasmine-failed, .jasmine_html-reporter .jasmine-bar.jasmine-errored {
155
+ background-color: #ca3a11;
156
+ border-bottom: 1px solid #eee;
157
+ }
158
+ .jasmine_html-reporter .jasmine-bar.jasmine-passed {
159
+ background-color: #007069;
160
+ }
161
+ .jasmine_html-reporter .jasmine-bar.jasmine-incomplete {
162
+ background-color: #bababa;
163
+ }
164
+ .jasmine_html-reporter .jasmine-bar.jasmine-skipped {
165
+ background-color: #bababa;
166
+ }
167
+ .jasmine_html-reporter .jasmine-bar.jasmine-warning {
168
+ background-color: #ba9d37;
169
+ color: #333;
170
+ }
171
+ .jasmine_html-reporter .jasmine-bar.jasmine-menu {
172
+ background-color: #fff;
173
+ color: #aaa;
174
+ }
175
+ .jasmine_html-reporter .jasmine-bar.jasmine-menu a {
176
+ color: #333;
177
+ }
178
+ .jasmine_html-reporter .jasmine-bar a {
179
+ color: white;
180
+ }
181
+ .jasmine_html-reporter.jasmine-spec-list .jasmine-bar.jasmine-menu.jasmine-failure-list,
182
+ .jasmine_html-reporter.jasmine-spec-list .jasmine-results .jasmine-failures {
183
+ display: none;
184
+ }
185
+ .jasmine_html-reporter.jasmine-failure-list .jasmine-bar.jasmine-menu.jasmine-spec-list,
186
+ .jasmine_html-reporter.jasmine-failure-list .jasmine-summary {
187
+ display: none;
188
+ }
189
+ .jasmine_html-reporter .jasmine-results {
190
+ margin-top: 14px;
191
+ }
192
+ .jasmine_html-reporter .jasmine-summary {
193
+ margin-top: 14px;
194
+ }
195
+ .jasmine_html-reporter .jasmine-summary ul {
196
+ list-style-type: none;
197
+ margin-left: 14px;
198
+ padding-top: 0;
199
+ padding-left: 0;
200
+ }
201
+ .jasmine_html-reporter .jasmine-summary ul.jasmine-suite {
202
+ margin-top: 7px;
203
+ margin-bottom: 7px;
204
+ }
205
+ .jasmine_html-reporter .jasmine-summary li.jasmine-passed a {
206
+ color: #007069;
207
+ }
208
+ .jasmine_html-reporter .jasmine-summary li.jasmine-failed a {
209
+ color: #ca3a11;
210
+ }
211
+ .jasmine_html-reporter .jasmine-summary li.jasmine-empty a {
212
+ color: #ba9d37;
213
+ }
214
+ .jasmine_html-reporter .jasmine-summary li.jasmine-pending a {
215
+ color: #ba9d37;
216
+ }
217
+ .jasmine_html-reporter .jasmine-summary li.jasmine-excluded a {
218
+ color: #bababa;
219
+ }
220
+ .jasmine_html-reporter .jasmine-specs li.jasmine-passed a:before {
221
+ content: "• ";
222
+ }
223
+ .jasmine_html-reporter .jasmine-specs li.jasmine-failed a:before {
224
+ content: "× ";
225
+ }
226
+ .jasmine_html-reporter .jasmine-specs li.jasmine-empty a:before {
227
+ content: "* ";
228
+ }
229
+ .jasmine_html-reporter .jasmine-specs li.jasmine-pending a:before {
230
+ content: "• ";
231
+ }
232
+ .jasmine_html-reporter .jasmine-specs li.jasmine-excluded a:before {
233
+ content: "• ";
234
+ }
235
+ .jasmine_html-reporter .jasmine-description + .jasmine-suite {
236
+ margin-top: 0;
237
+ }
238
+ .jasmine_html-reporter .jasmine-suite {
239
+ margin-top: 14px;
240
+ }
241
+ .jasmine_html-reporter .jasmine-suite a {
242
+ color: #333;
243
+ }
244
+ .jasmine_html-reporter .jasmine-failures .jasmine-spec-detail {
245
+ margin-bottom: 28px;
246
+ }
247
+ .jasmine_html-reporter .jasmine-failures .jasmine-spec-detail .jasmine-description {
248
+ background-color: #ca3a11;
249
+ color: white;
250
+ }
251
+ .jasmine_html-reporter .jasmine-failures .jasmine-spec-detail .jasmine-description a {
252
+ color: white;
253
+ }
254
+ .jasmine_html-reporter .jasmine-result-message {
255
+ padding-top: 14px;
256
+ color: #333;
257
+ white-space: pre-wrap;
258
+ }
259
+ .jasmine_html-reporter .jasmine-result-message span.jasmine-result {
260
+ display: block;
261
+ }
262
+ .jasmine_html-reporter .jasmine-stack-trace {
263
+ margin: 5px 0 0 0;
264
+ max-height: 224px;
265
+ overflow: auto;
266
+ line-height: 18px;
267
+ color: #666;
268
+ border: 1px solid #ddd;
269
+ background: white;
270
+ white-space: pre;
271
+ }
@@ -371,6 +371,19 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
371
371
  return matches ? matches[1] : '<anonymous>';
372
372
  };
373
373
 
374
+ j$.isPending_ = function(promise) {
375
+ var sentinel = {};
376
+ // eslint-disable-next-line compat/compat
377
+ return Promise.race([promise, Promise.resolve(sentinel)]).then(
378
+ function(result) {
379
+ return result === sentinel;
380
+ },
381
+ function() {
382
+ return false;
383
+ }
384
+ );
385
+ };
386
+
374
387
  /**
375
388
  * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}),
376
389
  * that will succeed if the actual value being compared is an instance of the specified class/constructor.
@@ -679,11 +692,21 @@ getJasmineRequireObj().util = function(j$) {
679
692
  };
680
693
 
681
694
  getJasmineRequireObj().Spec = function(j$) {
695
+ /**
696
+ * @interface Spec
697
+ * @see Configuration#specFilter
698
+ */
682
699
  function Spec(attrs) {
683
700
  this.expectationFactory = attrs.expectationFactory;
684
701
  this.asyncExpectationFactory = attrs.asyncExpectationFactory;
685
702
  this.resultCallback = attrs.resultCallback || function() {};
686
703
  this.id = attrs.id;
704
+ /**
705
+ * The description passed to the {@link it} that created this spec.
706
+ * @name Spec#description
707
+ * @readonly
708
+ * @type {string}
709
+ */
687
710
  this.description = attrs.description || '';
688
711
  this.queueableFn = attrs.queueableFn;
689
712
  this.beforeAndAfterFns =
@@ -875,6 +898,12 @@ getJasmineRequireObj().Spec = function(j$) {
875
898
  return 'passed';
876
899
  };
877
900
 
901
+ /**
902
+ * The full description including all ancestors of this spec.
903
+ * @name Spec#getFullName
904
+ * @function
905
+ * @returns {string}
906
+ */
878
907
  Spec.prototype.getFullName = function() {
879
908
  return this.getSpecName(this);
880
909
  };
@@ -963,11 +992,12 @@ getJasmineRequireObj().Order = function() {
963
992
 
964
993
  getJasmineRequireObj().Env = function(j$) {
965
994
  /**
966
- * _Note:_ Do not construct this directly, Jasmine will make one during booting.
967
- * @name Env
995
+ * @class Env
968
996
  * @since 2.0.0
969
- * @classdesc The Jasmine environment
970
- * @constructor
997
+ * @classdesc The Jasmine environment.<br>
998
+ * _Note:_ Do not construct this directly. You can obtain the Env instance by
999
+ * calling {@link jasmine.getEnv}.
1000
+ * @hideconstructor
971
1001
  */
972
1002
  function Env(options) {
973
1003
  options = options || {};
@@ -998,7 +1028,8 @@ getJasmineRequireObj().Env = function(j$) {
998
1028
 
999
1029
  /**
1000
1030
  * This represents the available options to configure Jasmine.
1001
- * Options that are not provided will use their default values
1031
+ * Options that are not provided will use their default values.
1032
+ * @see Env#configure
1002
1033
  * @interface Configuration
1003
1034
  * @since 3.3.0
1004
1035
  */
@@ -1016,7 +1047,7 @@ getJasmineRequireObj().Env = function(j$) {
1016
1047
  * Null causes the seed to be determined randomly at the start of execution.
1017
1048
  * @name Configuration#seed
1018
1049
  * @since 3.3.0
1019
- * @type function
1050
+ * @type (number|string)
1020
1051
  * @default null
1021
1052
  */
1022
1053
  seed: null,
@@ -1046,12 +1077,19 @@ getJasmineRequireObj().Env = function(j$) {
1046
1077
  * @default false
1047
1078
  */
1048
1079
  oneFailurePerSpec: false,
1080
+ /**
1081
+ * A function that takes a spec and returns true if it should be executed
1082
+ * or false if it should be skipped.
1083
+ * @callback SpecFilter
1084
+ * @param {Spec} spec - The spec that the filter is being applied to.
1085
+ * @return boolean
1086
+ */
1049
1087
  /**
1050
1088
  * Function to use to filter specs
1051
1089
  * @name Configuration#specFilter
1052
1090
  * @since 3.3.0
1053
- * @type function
1054
- * @default true
1091
+ * @type SpecFilter
1092
+ * @default A function that always returns true.
1055
1093
  */
1056
1094
  specFilter: function() {
1057
1095
  return true;
@@ -1602,6 +1640,13 @@ getJasmineRequireObj().Env = function(j$) {
1602
1640
  defaultResourcesForRunnable(topSuite.id);
1603
1641
  currentDeclarationSuite = topSuite;
1604
1642
 
1643
+ /**
1644
+ * Provides the root suite, through which all suites and specs can be
1645
+ * accessed.
1646
+ * @function
1647
+ * @name Env#topSuite
1648
+ * @return {Suite} the root suite
1649
+ */
1605
1650
  this.topSuite = function() {
1606
1651
  return topSuite;
1607
1652
  };
@@ -1681,7 +1726,27 @@ getJasmineRequireObj().Env = function(j$) {
1681
1726
  queueRunnerFactory
1682
1727
  );
1683
1728
 
1684
- // Both params are optional.
1729
+ /**
1730
+ * Executes the specs.
1731
+ *
1732
+ * If called with no parameters or with a falsy value as the first parameter,
1733
+ * all specs will be executed except those that are excluded by a
1734
+ * [spec filter]{@link Configuration#specFilter} or other mechanism. If the
1735
+ * first parameter is a list of spec/suite IDs, only those specs/suites will
1736
+ * be run.
1737
+ *
1738
+ * Both parameters are optional, but a completion callback is only valid as
1739
+ * the second parameter. To specify a completion callback but not a list of
1740
+ * specs/suites to run, pass null or undefined as the first parameter.
1741
+ *
1742
+ * execute should not be called more than once.
1743
+ *
1744
+ * @name Env#execute
1745
+ * @since 2.0.0
1746
+ * @function
1747
+ * @param {(string[])=} runnablesToRun IDs of suites and/or specs to run
1748
+ * @param {Function=} onComplete Function that will be called after all specs have run
1749
+ */
1685
1750
  this.execute = function(runnablesToRun, onComplete) {
1686
1751
  installGlobalErrors();
1687
1752
 
@@ -1873,6 +1938,15 @@ getJasmineRequireObj().Env = function(j$) {
1873
1938
  }
1874
1939
  });
1875
1940
 
1941
+ /**
1942
+ * Configures whether Jasmine should allow the same function to be spied on
1943
+ * more than once during the execution of a spec. By default, spying on
1944
+ * a function that is already a spy will cause an error.
1945
+ * @name Env#allowRespy
1946
+ * @function
1947
+ * @since 2.5.0
1948
+ * @param {boolean} allow Whether to allow respying
1949
+ */
1876
1950
  this.allowRespy = function(allow) {
1877
1951
  spyRegistry.allowRespy(allow);
1878
1952
  };
@@ -2942,6 +3016,18 @@ getJasmineRequireObj().CallTracker = function(j$) {
2942
3016
  return call ? call.args : [];
2943
3017
  };
2944
3018
 
3019
+ /**
3020
+ * Get the "this" object that was passed to a specific invocation of this spy.
3021
+ * @name Spy#calls#thisFor
3022
+ * @function
3023
+ * @param {Integer} index The 0-based invocation index.
3024
+ * @return {Object?}
3025
+ */
3026
+ this.thisFor = function(index) {
3027
+ var call = calls[index];
3028
+ return call ? call.object : undefined;
3029
+ };
3030
+
2945
3031
  /**
2946
3032
  * Get the raw calls array for this spy.
2947
3033
  * @name Spy#calls#all
@@ -3093,9 +3179,11 @@ getJasmineRequireObj().Clock = function() {
3093
3179
  typeof process.versions.node === 'string';
3094
3180
 
3095
3181
  /**
3096
- * _Note:_ Do not construct this directly, Jasmine will make one during booting. You can get the current clock with {@link jasmine.clock}.
3097
3182
  * @class Clock
3098
- * @classdesc Jasmine's mock clock is used when testing time dependent code.
3183
+ * @classdesc Jasmine's mock clock is used when testing time dependent code.<br>
3184
+ * _Note:_ Do not construct this directly. You can get the current clock with
3185
+ * {@link jasmine.clock}.
3186
+ * @hideconstructor
3099
3187
  */
3100
3188
  function Clock(global, delayedFunctionSchedulerFactory, mockDate) {
3101
3189
  var self = this,
@@ -3651,7 +3739,35 @@ getJasmineRequireObj().Expectation = function(j$) {
3651
3739
  });
3652
3740
 
3653
3741
  /**
3654
- * Asynchronous matchers.
3742
+ * Asynchronous matchers that operate on an actual value which is a promise,
3743
+ * and return a promise.
3744
+ *
3745
+ * Most async matchers will wait indefinitely for the promise to be resolved
3746
+ * or rejected, resulting in a spec timeout if that never happens. If you
3747
+ * expect that the promise will already be resolved or rejected at the time
3748
+ * the matcher is called, you can use the {@link async-matchers#already}
3749
+ * modifier to get a faster failure with a more helpful message.
3750
+ *
3751
+ * Note: Specs must await the result of each async matcher, return the
3752
+ * promise returned by the matcher, or return a promise that's derived from
3753
+ * the one returned by the matcher. Otherwise the matcher will not be
3754
+ * evaluated before the spec completes.
3755
+ *
3756
+ * @example
3757
+ * // Good
3758
+ * await expectAsync(aPromise).toBeResolved();
3759
+ * @example
3760
+ * // Good
3761
+ * return expectAsync(aPromise).toBeResolved();
3762
+ * @example
3763
+ * // Good
3764
+ * return expectAsync(aPromise).toBeResolved()
3765
+ * .then(function() {
3766
+ * // more spec code
3767
+ * });
3768
+ * @example
3769
+ * // Bad
3770
+ * expectAsync(aPromise).toBeResolved();
3655
3771
  * @namespace async-matchers
3656
3772
  */
3657
3773
  function AsyncExpectation(options) {
@@ -3701,6 +3817,23 @@ getJasmineRequireObj().Expectation = function(j$) {
3701
3817
  }
3702
3818
  });
3703
3819
 
3820
+ /**
3821
+ * Fail as soon as possible if the actual is pending.
3822
+ * Otherwise evaluate the matcher.
3823
+ * @member
3824
+ * @name async-matchers#already
3825
+ * @type {async-matchers}
3826
+ * @example
3827
+ * await expectAsync(myPromise).already.toBeResolved();
3828
+ * @example
3829
+ * return expectAsync(myPromise).already.toBeResolved();
3830
+ */
3831
+ Object.defineProperty(AsyncExpectation.prototype, 'already', {
3832
+ get: function() {
3833
+ return addFilter(this, expectSettledPromiseFilter);
3834
+ }
3835
+ });
3836
+
3704
3837
  function wrapSyncCompare(name, matcherFactory) {
3705
3838
  return function() {
3706
3839
  var result = this.expector.compare(name, matcherFactory, arguments);
@@ -3779,6 +3912,27 @@ getJasmineRequireObj().Expectation = function(j$) {
3779
3912
  buildFailureMessage: negatedFailureMessage
3780
3913
  };
3781
3914
 
3915
+ var expectSettledPromiseFilter = {
3916
+ selectComparisonFunc: function(matcher) {
3917
+ return function(actual) {
3918
+ var matcherArgs = arguments;
3919
+
3920
+ return j$.isPending_(actual).then(function(isPending) {
3921
+ if (isPending) {
3922
+ return {
3923
+ pass: false,
3924
+ message:
3925
+ 'Expected a promise to be settled (via ' +
3926
+ 'expectAsync(...).already) but it was pending.'
3927
+ };
3928
+ } else {
3929
+ return matcher.compare.apply(null, matcherArgs);
3930
+ }
3931
+ });
3932
+ };
3933
+ }
3934
+ };
3935
+
3782
3936
  function ContextAddingFilter(message) {
3783
3937
  this.message = message;
3784
3938
  }
@@ -4074,7 +4228,22 @@ getJasmineRequireObj().GlobalErrors = function(j$) {
4074
4228
  this.jasmineHandlers = {};
4075
4229
  this.installOne_ = function installOne_(errorType, jasmineMessage) {
4076
4230
  function taggedOnError(error) {
4077
- error.jasmineMessage = jasmineMessage + ': ' + error;
4231
+ var substituteMsg;
4232
+
4233
+ if (error) {
4234
+ error.jasmineMessage = jasmineMessage + ': ' + error;
4235
+ } else {
4236
+ substituteMsg = jasmineMessage + ' with no error or message';
4237
+
4238
+ if (errorType === 'unhandledRejection') {
4239
+ substituteMsg +=
4240
+ '\n' +
4241
+ '(Tip: to get a useful stack trace, use ' +
4242
+ 'Promise.reject(new Error(...)) instead of Promise.reject().)';
4243
+ }
4244
+
4245
+ error = new Error(substituteMsg);
4246
+ }
4078
4247
 
4079
4248
  var handler = handlers[handlers.length - 1];
4080
4249
 
@@ -4423,7 +4592,7 @@ getJasmineRequireObj().toBeResolved = function(j$) {
4423
4592
  * @example
4424
4593
  * return expectAsync(aPromise).toBeResolved();
4425
4594
  */
4426
- return function toBeResolved() {
4595
+ return function toBeResolved(matchersUtil) {
4427
4596
  return {
4428
4597
  compare: function(actual) {
4429
4598
  if (!j$.isPromiseLike(actual)) {
@@ -4434,8 +4603,15 @@ getJasmineRequireObj().toBeResolved = function(j$) {
4434
4603
  function() {
4435
4604
  return { pass: true };
4436
4605
  },
4437
- function() {
4438
- return { pass: false };
4606
+ function(e) {
4607
+ return {
4608
+ pass: false,
4609
+ message:
4610
+ 'Expected a promise to be resolved but it was ' +
4611
+ 'rejected with ' +
4612
+ matchersUtil.pp(e) +
4613
+ '.'
4614
+ };
4439
4615
  }
4440
4616
  );
4441
4617
  }
@@ -4490,10 +4666,14 @@ getJasmineRequireObj().toBeResolvedTo = function(j$) {
4490
4666
  };
4491
4667
  }
4492
4668
  },
4493
- function() {
4669
+ function(e) {
4494
4670
  return {
4495
4671
  pass: false,
4496
- message: prefix(false) + ' but it was rejected.'
4672
+ message:
4673
+ prefix(false) +
4674
+ ' but it was rejected with ' +
4675
+ matchersUtil.pp(e) +
4676
+ '.'
4497
4677
  };
4498
4678
  }
4499
4679
  );
@@ -4625,11 +4805,11 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
4625
4805
  // TODO: convert all uses of j$.pp to use the injected pp
4626
4806
 
4627
4807
  /**
4808
+ * @class MatchersUtil
4809
+ * @classdesc Utilities for use in implementing matchers.<br>
4628
4810
  * _Note:_ Do not construct this directly. Jasmine will construct one and
4629
4811
  * pass it to matchers and asymmetric equality testers.
4630
- * @name MatchersUtil
4631
- * @classdesc Utilities for use in implementing matchers
4632
- * @constructor
4812
+ * @hideconstructor
4633
4813
  */
4634
4814
  function MatchersUtil(options) {
4635
4815
  options = options || {};
@@ -4892,6 +5072,17 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
4892
5072
  diffBuilder.recordMismatch();
4893
5073
  }
4894
5074
  return result;
5075
+ case '[object ArrayBuffer]':
5076
+ // If we have an instance of ArrayBuffer the Uint8Array ctor
5077
+ // will be defined as well
5078
+ return self.eq_(
5079
+ new Uint8Array(a), // eslint-disable-line compat/compat
5080
+ new Uint8Array(b), // eslint-disable-line compat/compat
5081
+ aStack,
5082
+ bStack,
5083
+ customTesters,
5084
+ diffBuilder
5085
+ );
4895
5086
  // RegExps are compared by their source patterns and flags.
4896
5087
  case '[object RegExp]':
4897
5088
  return (
@@ -5268,6 +5459,31 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
5268
5459
  return MatchersUtil;
5269
5460
  };
5270
5461
 
5462
+ /**
5463
+ * @interface AsymmetricEqualityTester
5464
+ * @classdesc An asymmetric equality tester is an object that can match multiple
5465
+ * objects. Examples include jasmine.any() and jasmine.stringMatching().
5466
+ * User-defined asymmetric equality testers can also be defined and used in
5467
+ * expectations.
5468
+ * @see custom_asymmetric_equality_testers
5469
+ * @since 2.0.0
5470
+ */
5471
+ /**
5472
+ * Determines whether a value matches this tester
5473
+ * @function
5474
+ * @name AsymmetricEqualityTester#asymmetricMatch
5475
+ * @param value {any} The value to test
5476
+ * @param matchersUtil {MatchersUtil} utilities for testing equality, etc
5477
+ * @return {Boolean}
5478
+ */
5479
+ /**
5480
+ * Returns a string representation of this tester to use in matcher failure messages
5481
+ * @function
5482
+ * @name AsymmetricEqualityTester#jasmineToString
5483
+ * @param pp {function} Function that takes a value and returns a pretty-printed representation
5484
+ * @return {String}
5485
+ */
5486
+
5271
5487
  getJasmineRequireObj().MismatchTree = function(j$) {
5272
5488
  /*
5273
5489
  To be able to apply custom object formatters at all possible levels of an
@@ -7987,10 +8203,11 @@ getJasmineRequireObj().interface = function(jasmine, env) {
7987
8203
  * @function
7988
8204
  * @global
7989
8205
  * @param {Object} obj - The object upon which to install the {@link Spy}s
8206
+ * @param {boolean} includeNonEnumerable - Whether or not to add spies to non-enumerable properties
7990
8207
  * @returns {Object} the spied object
7991
8208
  */
7992
- spyOnAllFunctions: function(obj) {
7993
- return env.spyOnAllFunctions(obj);
8209
+ spyOnAllFunctions: function(obj, includeNonEnumerable) {
8210
+ return env.spyOnAllFunctions(obj, includeNonEnumerable);
7994
8211
  },
7995
8212
 
7996
8213
  jsApiReporter: new jasmine.JsApiReporter({
@@ -8145,9 +8362,11 @@ getJasmineRequireObj().Spy = function(j$) {
8145
8362
  });
8146
8363
 
8147
8364
  /**
8148
- * _Note:_ Do not construct this directly, use {@link spyOn}, {@link spyOnProperty}, {@link jasmine.createSpy}, or {@link jasmine.createSpyObj}
8149
- * @constructor
8150
- * @name Spy
8365
+ * @classdesc _Note:_ Do not construct this directly. Use {@link spyOn},
8366
+ * {@link spyOnProperty}, {@link jasmine.createSpy}, or
8367
+ * {@link jasmine.createSpyObj} instead.
8368
+ * @class Spy
8369
+ * @hideconstructor
8151
8370
  */
8152
8371
  function Spy(
8153
8372
  name,
@@ -8176,6 +8395,7 @@ getJasmineRequireObj().Spy = function(j$) {
8176
8395
  * @property {object} object - `this` context for the invocation.
8177
8396
  * @property {number} invocationOrder - Order of the invocation.
8178
8397
  * @property {Array} args - The arguments passed for this invocation.
8398
+ * @property returnValue - The value that was returned from this invocation.
8179
8399
  */
8180
8400
  var callData = {
8181
8401
  object: context,
@@ -8591,7 +8811,7 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
8591
8811
  return spy;
8592
8812
  };
8593
8813
 
8594
- this.spyOnAllFunctions = function(obj) {
8814
+ this.spyOnAllFunctions = function(obj, includeNonEnumerable) {
8595
8815
  if (j$.util.isUndefined(obj)) {
8596
8816
  throw new Error(
8597
8817
  'spyOnAllFunctions could not find an object to spy upon'
@@ -8599,30 +8819,27 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
8599
8819
  }
8600
8820
 
8601
8821
  var pointer = obj,
8602
- props = [],
8603
- prop,
8604
- descriptor;
8822
+ propsToSpyOn = [],
8823
+ properties,
8824
+ propertiesToSkip = [];
8605
8825
 
8606
- while (pointer) {
8607
- for (prop in pointer) {
8608
- if (
8609
- Object.prototype.hasOwnProperty.call(pointer, prop) &&
8610
- pointer[prop] instanceof Function
8611
- ) {
8612
- descriptor = Object.getOwnPropertyDescriptor(pointer, prop);
8613
- if (
8614
- (descriptor.writable || descriptor.set) &&
8615
- descriptor.configurable
8616
- ) {
8617
- props.push(prop);
8618
- }
8619
- }
8620
- }
8826
+ while (
8827
+ pointer &&
8828
+ (!includeNonEnumerable || pointer !== Object.prototype)
8829
+ ) {
8830
+ properties = getProps(pointer, includeNonEnumerable);
8831
+ properties = properties.filter(function(prop) {
8832
+ return propertiesToSkip.indexOf(prop) === -1;
8833
+ });
8834
+ propertiesToSkip = propertiesToSkip.concat(properties);
8835
+ propsToSpyOn = propsToSpyOn.concat(
8836
+ getSpyableFunctionProps(pointer, properties)
8837
+ );
8621
8838
  pointer = Object.getPrototypeOf(pointer);
8622
8839
  }
8623
8840
 
8624
- for (var i = 0; i < props.length; i++) {
8625
- this.spyOn(obj, props[i]);
8841
+ for (var i = 0; i < propsToSpyOn.length; i++) {
8842
+ this.spyOn(obj, propsToSpyOn[i]);
8626
8843
  }
8627
8844
 
8628
8845
  return obj;
@@ -8637,6 +8854,50 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
8637
8854
  };
8638
8855
  }
8639
8856
 
8857
+ function getProps(obj, includeNonEnumerable) {
8858
+ var enumerableProperties = Object.keys(obj);
8859
+
8860
+ if (!includeNonEnumerable) {
8861
+ return enumerableProperties;
8862
+ }
8863
+
8864
+ return Object.getOwnPropertyNames(obj).filter(function(prop) {
8865
+ return (
8866
+ prop !== 'constructor' ||
8867
+ enumerableProperties.indexOf('constructor') > -1
8868
+ );
8869
+ });
8870
+ }
8871
+
8872
+ function getSpyableFunctionProps(obj, propertiesToCheck) {
8873
+ var props = [],
8874
+ prop;
8875
+ for (var i = 0; i < propertiesToCheck.length; i++) {
8876
+ prop = propertiesToCheck[i];
8877
+ if (
8878
+ Object.prototype.hasOwnProperty.call(obj, prop) &&
8879
+ isSpyableProp(obj, prop)
8880
+ ) {
8881
+ props.push(prop);
8882
+ }
8883
+ }
8884
+ return props;
8885
+ }
8886
+
8887
+ function isSpyableProp(obj, prop) {
8888
+ var value, descriptor;
8889
+ try {
8890
+ value = obj[prop];
8891
+ } catch (e) {
8892
+ return false;
8893
+ }
8894
+ if (value instanceof Function) {
8895
+ descriptor = Object.getOwnPropertyDescriptor(obj, prop);
8896
+ return (descriptor.writable || descriptor.set) && descriptor.configurable;
8897
+ }
8898
+ return false;
8899
+ }
8900
+
8640
8901
  return SpyRegistry;
8641
8902
  };
8642
8903
 
@@ -8969,10 +9230,26 @@ getJasmineRequireObj().StackTrace = function(j$) {
8969
9230
  };
8970
9231
 
8971
9232
  getJasmineRequireObj().Suite = function(j$) {
9233
+ /**
9234
+ * @interface Suite
9235
+ * @see Env#topSuite
9236
+ */
8972
9237
  function Suite(attrs) {
8973
9238
  this.env = attrs.env;
8974
9239
  this.id = attrs.id;
9240
+ /**
9241
+ * The parent of this suite, or null if this is the top suite.
9242
+ * @name Suite#parentSuite
9243
+ * @readonly
9244
+ * @type {Suite}
9245
+ */
8975
9246
  this.parentSuite = attrs.parentSuite;
9247
+ /**
9248
+ * The description passed to the {@link describe} that created this suite.
9249
+ * @name Suite#description
9250
+ * @readonly
9251
+ * @type {string}
9252
+ */
8976
9253
  this.description = attrs.description;
8977
9254
  this.expectationFactory = attrs.expectationFactory;
8978
9255
  this.asyncExpectationFactory = attrs.asyncExpectationFactory;
@@ -8986,6 +9263,11 @@ getJasmineRequireObj().Suite = function(j$) {
8986
9263
 
8987
9264
  this.timer = attrs.timer || new j$.Timer();
8988
9265
 
9266
+ /**
9267
+ * The suite's children.
9268
+ * @name Suite#children
9269
+ * @type {Array.<(Spec|Suite)>}
9270
+ */
8989
9271
  this.children = [];
8990
9272
 
8991
9273
  /**
@@ -9023,6 +9305,12 @@ getJasmineRequireObj().Suite = function(j$) {
9023
9305
  return this.asyncExpectationFactory(actual, this);
9024
9306
  };
9025
9307
 
9308
+ /**
9309
+ * The full description including all ancestors of this suite.
9310
+ * @name Suite#getFullName
9311
+ * @function
9312
+ * @returns {string}
9313
+ */
9026
9314
  Suite.prototype.getFullName = function() {
9027
9315
  var fullName = [];
9028
9316
  for (
@@ -9469,5 +9757,5 @@ getJasmineRequireObj().UserContext = function(j$) {
9469
9757
  };
9470
9758
 
9471
9759
  getJasmineRequireObj().version = function() {
9472
- return '3.7.1';
9760
+ return '3.8.0';
9473
9761
  };
@@ -4,6 +4,6 @@
4
4
  #
5
5
  module Jasmine
6
6
  module Core
7
- VERSION = "3.7.1"
7
+ VERSION = "3.8.0"
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.1
4
+ version: 3.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Van Hove
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-19 00:00:00.000000000 Z
11
+ date: 2021-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -71,8 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  - !ruby/object:Gem::Version
72
72
  version: '0'
73
73
  requirements: []
74
- rubyforge_project:
75
- rubygems_version: 2.7.6.2
74
+ rubygems_version: 3.0.3
76
75
  signing_key:
77
76
  specification_version: 4
78
77
  summary: JavaScript BDD framework