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 +4 -4
- data/lib/jasmine-core/core.py +29 -0
- data/lib/jasmine-core/jasmine-html.js +20 -5
- data/lib/jasmine-core/jasmine.css +270 -127
- data/lib/jasmine-core/jasmine.js +336 -48
- data/lib/jasmine-core/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1d57232cc4b128cad1a9e9ddbc94319bd2b56a24211eaae6e32fc1e5c181810
|
4
|
+
data.tar.gz: ca6ebdb25bc946e9b2abd7e71d22e2cdf22edf33ae86824ab5e7f07d9689cdba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d7258d7339350d5bd68e4fa7da1b0170524f74a81c5ca1ca73f919924abde8efa98c1459bda1db2b89ca43973c821e93027ca8a0db720f67241a3aaa7b7c777
|
7
|
+
data.tar.gz: 61b1a8dfdb8d06916111340bd2a281ca0da8c102385ac5e011a7091d4813f9499928060686c3b92d15d2f6aeaec642f1036fc506f6448b917470b8e601ae070e
|
data/lib/jasmine-core/core.py
CHANGED
@@ -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
|
-
|
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('
|
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
|
-
|
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
|
-
|
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
|
-
|
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 {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
.jasmine_html-reporter
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
.jasmine_html-reporter .
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
.jasmine_html-reporter .jasmine-
|
27
|
-
|
28
|
-
.jasmine_html-reporter .jasmine-
|
29
|
-
|
30
|
-
.jasmine_html-reporter .jasmine-
|
31
|
-
|
32
|
-
.jasmine_html-reporter .jasmine-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
.jasmine_html-reporter .jasmine-
|
41
|
-
|
42
|
-
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-excluded:before { color: #bababa; content: "•"; }
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
.jasmine_html-reporter .jasmine-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
.jasmine_html-reporter .jasmine-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
.jasmine_html-reporter .jasmine-summary
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
.jasmine_html-reporter .jasmine-summary
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
.jasmine_html-reporter .jasmine-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
.jasmine_html-reporter .jasmine-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
.jasmine_html-reporter .jasmine-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
.jasmine_html-reporter .jasmine-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
.jasmine_html-reporter .jasmine-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
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,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") 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
|
+
}
|
data/lib/jasmine-core/jasmine.js
CHANGED
@@ -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
|
-
*
|
967
|
-
* @name Env
|
995
|
+
* @class Env
|
968
996
|
* @since 2.0.0
|
969
|
-
* @classdesc The Jasmine environment
|
970
|
-
*
|
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
|
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
|
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
|
-
|
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
|
-
|
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 {
|
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:
|
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
|
-
* @
|
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
|
8149
|
-
* @
|
8150
|
-
* @
|
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
|
-
|
8603
|
-
|
8604
|
-
|
8822
|
+
propsToSpyOn = [],
|
8823
|
+
properties,
|
8824
|
+
propertiesToSkip = [];
|
8605
8825
|
|
8606
|
-
while (
|
8607
|
-
|
8608
|
-
|
8609
|
-
|
8610
|
-
|
8611
|
-
|
8612
|
-
|
8613
|
-
|
8614
|
-
|
8615
|
-
|
8616
|
-
|
8617
|
-
|
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 <
|
8625
|
-
this.spyOn(obj,
|
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.
|
9760
|
+
return '3.8.0';
|
9473
9761
|
};
|
data/lib/jasmine-core/version.rb
CHANGED
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.
|
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-
|
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
|
-
|
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
|