Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bde447a
commit 4211419
Showing
11 changed files
with
2,593 additions
and
0 deletions.
There are no files selected for viewing
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
body.jspec { | ||
margin: 45px 0; | ||
font: 12px "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif; | ||
background: #efefef url(images/bg.png) top left repeat-x; | ||
text-align: center; | ||
} | ||
#jspec { | ||
margin: 0 auto; | ||
padding-top: 30px; | ||
width: 1008px; | ||
background: url(images/vr.png) top left repeat-y; | ||
text-align: left; | ||
} | ||
#jspec-top { | ||
position: relative; | ||
margin: 0 auto; | ||
width: 1008px; | ||
height: 40px; | ||
background: url(images/sprites.bg.png) top left no-repeat; | ||
} | ||
#jspec-bottom { | ||
margin: 0 auto; | ||
width: 1008px; | ||
height: 15px; | ||
background: url(images/sprites.bg.png) bottom left no-repeat; | ||
} | ||
#jspec .loading { | ||
margin-top: -45px; | ||
width: 1008px; | ||
height: 80px; | ||
background: url(images/loading.gif) 50% 50% no-repeat; | ||
} | ||
#jspec-title { | ||
position: absolute; | ||
top: 15px; | ||
left: 20px; | ||
width: 160px; | ||
font-size: 22px; | ||
font-weight: normal; | ||
background: url(images/sprites.png) 0 -126px no-repeat; | ||
text-align: center; | ||
} | ||
#jspec-title em { | ||
font-size: 10px; | ||
font-style: normal; | ||
color: #BCC8D1; | ||
} | ||
#jspec-report * { | ||
margin: 0; | ||
padding: 0; | ||
background: none; | ||
border: none; | ||
} | ||
#jspec-report { | ||
padding: 15px 40px; | ||
font: 11px "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif; | ||
color: #7B8D9B; | ||
} | ||
#jspec-report.has-failures { | ||
padding-bottom: 30px; | ||
} | ||
#jspec-report .hidden { | ||
display: none; | ||
} | ||
#jspec-report .heading { | ||
margin-bottom: 15px; | ||
} | ||
#jspec-report .heading span { | ||
padding-right: 10px; | ||
} | ||
#jspec-report .heading .passes em { | ||
color: #0ea0eb; | ||
} | ||
#jspec-report .heading .failures em { | ||
color: #FA1616; | ||
} | ||
#jspec-report table { | ||
font-size: 11px; | ||
border-collapse: collapse; | ||
} | ||
#jspec-report td { | ||
padding: 8px; | ||
text-indent: 30px; | ||
color: #7B8D9B; | ||
} | ||
#jspec-report tr.body { | ||
display: none; | ||
} | ||
#jspec-report tr.body pre { | ||
margin: 0; | ||
padding: 0 0 5px 25px; | ||
} | ||
#jspec-report tr.even:hover + tr.body, | ||
#jspec-report tr.odd:hover + tr.body { | ||
display: block; | ||
} | ||
#jspec-report tr td:first-child em { | ||
display: block; | ||
clear: both; | ||
font-style: normal; | ||
font-weight: normal; | ||
color: #7B8D9B; | ||
} | ||
#jspec-report tr.even:hover, | ||
#jspec-report tr.odd:hover { | ||
text-shadow: 1px 1px 1px #fff; | ||
background: #F2F5F7; | ||
} | ||
#jspec-report td + td { | ||
padding-right: 0; | ||
width: 15px; | ||
} | ||
#jspec-report td.pass { | ||
background: url(images/sprites.png) 3px -7px no-repeat; | ||
} | ||
#jspec-report td.fail { | ||
background: url(images/sprites.png) 3px -158px no-repeat; | ||
font-weight: bold; | ||
color: #FC0D0D; | ||
} | ||
#jspec-report td.requires-implementation { | ||
background: url(images/sprites.png) 3px -333px no-repeat; | ||
} | ||
#jspec-report tr.description td { | ||
margin-top: 25px; | ||
padding-top: 25px; | ||
font-size: 12px; | ||
font-weight: bold; | ||
text-indent: 0; | ||
color: #1a1a1a; | ||
} | ||
#jspec-report tr.description:first-child td { | ||
border-top: none; | ||
} | ||
#jspec-report .assertion { | ||
display: block; | ||
float: left; | ||
margin: 0 0 0 1px; | ||
padding: 0; | ||
width: 1px; | ||
height: 5px; | ||
background: #7B8D9B; | ||
} | ||
#jspec-report .assertion.failed { | ||
background: red; | ||
} | ||
.jspec-sandbox { | ||
display: none; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
|
||
// JSpec - Growl - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed) | ||
|
||
;(function(){ | ||
|
||
Growl = { | ||
|
||
// --- Version | ||
|
||
version: '1.0.0', | ||
|
||
/** | ||
* Execute the given _cmd_, returning an array of lines from stdout. | ||
* | ||
* Examples: | ||
* | ||
* Growl.exec('growlnotify', '-m', msg) | ||
* | ||
* @param {string ...} cmd | ||
* @return {array} | ||
* @api public | ||
*/ | ||
|
||
exec: function(cmd) { | ||
var lines = [], line | ||
with (JavaImporter(java.lang, java.io)) { | ||
var proccess = Runtime.getRuntime().exec(Array.prototype.slice.call(arguments)) | ||
var stream = new DataInputStream(proccess.getInputStream()) | ||
while (line = stream.readLine()) | ||
lines.push(line + '') | ||
stream.close() | ||
} | ||
return lines | ||
}, | ||
|
||
/** | ||
* Return the extension of the given _path_ or null. | ||
* | ||
* @param {string} path | ||
* @return {string} | ||
* @api private | ||
*/ | ||
|
||
extname: function(path) { | ||
return path.lastIndexOf('.') != -1 ? | ||
path.slice(path.lastIndexOf('.') + 1, path.length) : | ||
null | ||
}, | ||
|
||
/** | ||
* Version of the 'growlnotify' binary. | ||
* | ||
* @return {string} | ||
* @api private | ||
*/ | ||
|
||
binVersion: function() { | ||
try { return this.exec('growlnotify', '-v')[0].split(' ')[1] } catch (e) {} | ||
}, | ||
|
||
/** | ||
* Send growl notification _msg_ with _options_. | ||
* | ||
* Options: | ||
* | ||
* - title Notification title | ||
* - sticky Make the notification stick (defaults to false) | ||
* - name Application name (defaults to growlnotify) | ||
* - image | ||
* - path to an icon sets --iconpath | ||
* - path to an image sets --image | ||
* - capitalized word sets --appIcon | ||
* - filename uses extname as --icon | ||
* - otherwise treated as --icon | ||
* | ||
* Examples: | ||
* | ||
* Growl.notify('New email') | ||
* Growl.notify('5 new emails', { title: 'Thunderbird' }) | ||
* | ||
* @param {string} msg | ||
* @param {options} hash | ||
* @api public | ||
*/ | ||
|
||
notify: function(msg, options) { | ||
options = options || {} | ||
var args = ['growlnotify', '-m', msg] | ||
if (!this.binVersion()) throw new Error('growlnotify executable is required') | ||
if (image = options.image) { | ||
var flag, ext = this.extname(image) | ||
flag = flag || ext == 'icns' && 'iconpath' | ||
flag = flag || /^[A-Z]/.test(image) && 'appIcon' | ||
flag = flag || /^png|gif|jpe?g$/.test(ext) && 'image' | ||
flag = flag || ext && (image = ext) && 'icon' | ||
flag = flag || 'icon' | ||
args.push('--' + flag, image) | ||
} | ||
if (options.sticky) args.push('--sticky') | ||
if (options.name) args.push('--name', options.name) | ||
if (options.title) args.push(options.title) | ||
this.exec.apply(this, args) | ||
} | ||
} | ||
|
||
JSpec.include({ | ||
name: 'Growl', | ||
reporting: function(options){ | ||
var stats = JSpec.stats | ||
if (stats.failures) Growl.notify('failed ' + stats.failures + ' assertions', { title: 'JSpec'}) | ||
else Growl.notify('passed ' + stats.passes + ' assertions', { title: 'JSpec' }) | ||
} | ||
}) | ||
|
||
})() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
|
||
// JSpec - jQuery - Copyright TJ Holowaychuk <tj@vision-media.ca> (MIT Licensed) | ||
|
||
JSpec | ||
.requires('jQuery', 'when using jspec.jquery.js') | ||
.include({ | ||
name: 'jQuery', | ||
|
||
// --- Initialize | ||
|
||
init : function() { | ||
jQuery.ajaxSetup({ async: false }) | ||
}, | ||
|
||
// --- Utilities | ||
|
||
utilities : { | ||
element: jQuery, | ||
elements: jQuery, | ||
sandbox : function() { | ||
return jQuery('<div class="sandbox"></div>') | ||
} | ||
}, | ||
|
||
// --- Matchers | ||
|
||
matchers : { | ||
have_tag : "jQuery(expected, actual).length === 1", | ||
have_one : "alias have_tag", | ||
have_tags : "jQuery(expected, actual).length > 1", | ||
have_many : "alias have_tags", | ||
have_any : "alias have_tags", | ||
have_child : "jQuery(actual).children(expected).length === 1", | ||
have_children : "jQuery(actual).children(expected).length > 1", | ||
have_text : "jQuery(actual).text() === expected", | ||
have_value : "jQuery(actual).val() === expected", | ||
be_enabled : "!jQuery(actual).attr('disabled')", | ||
have_class : "jQuery(actual).hasClass(expected)", | ||
be_animated : "jQuery(actual).queue().length > 0", | ||
|
||
be_visible : function(actual) { | ||
return jQuery(actual).css('display') != 'none' && | ||
jQuery(actual).css('visibility') != 'hidden' && | ||
jQuery(actual).attr('type') != 'hidden' | ||
}, | ||
|
||
be_hidden : function(actual) { | ||
return !JSpec.does(actual, 'be_visible') | ||
}, | ||
|
||
have_classes : function(actual) { | ||
return !JSpec.any(JSpec.toArray(arguments, 1), function(arg){ | ||
return !JSpec.does(actual, 'have_class', arg) | ||
}) | ||
}, | ||
|
||
have_attr : function(actual, attr, value) { | ||
return value ? jQuery(actual).attr(attr) == value: | ||
jQuery(actual).attr(attr) | ||
}, | ||
|
||
have_event_handlers : function(actual, expected) { | ||
return jQuery(actual).data('events') ? | ||
jQuery(actual).data('events').hasOwnProperty(expected) : | ||
false | ||
}, | ||
|
||
'be disabled selected checked' : function(attr) { | ||
return 'jQuery(actual).attr("' + attr + '")' | ||
}, | ||
|
||
'have type id title alt href src sel rev name target' : function(attr) { | ||
return function(actual, value) { | ||
return JSpec.does(actual, 'have_attr', attr, value) | ||
} | ||
} | ||
} | ||
}) | ||
|
Oops, something went wrong.