Init version of js unit testing.
This commit is contained in:
parent
031d2c671e
commit
f1d146f3bb
12 changed files with 2551 additions and 13 deletions
|
@ -7,7 +7,7 @@ class App.Config
|
||||||
@get: ( key, group ) ->
|
@get: ( key, group ) ->
|
||||||
if _instance == undefined
|
if _instance == undefined
|
||||||
_instance ?= new _Singleton
|
_instance ?= new _Singleton
|
||||||
_instance.get( key )
|
_instance.get( key, group )
|
||||||
|
|
||||||
@set: ( key, value, group ) ->
|
@set: ( key, value, group ) ->
|
||||||
if _instance == undefined
|
if _instance == undefined
|
||||||
|
|
|
@ -24,10 +24,10 @@ class App.Auth
|
||||||
@loginCheck: ->
|
@loginCheck: ->
|
||||||
App.Log.log 'Auth', 'notice', 'loginCheck'
|
App.Log.log 'Auth', 'notice', 'loginCheck'
|
||||||
App.Com.ajax(
|
App.Com.ajax(
|
||||||
id: 'login_check',
|
id: 'login_check'
|
||||||
async: false,
|
async: false
|
||||||
type: 'GET',
|
type: 'GET'
|
||||||
url: '/signshow',
|
url: '/signshow'
|
||||||
success: (data, status, xhr) =>
|
success: (data, status, xhr) =>
|
||||||
App.Log.log 'Auth', 'notice', 'logincheck:success', data
|
App.Log.log 'Auth', 'notice', 'logincheck:success', data
|
||||||
|
|
||||||
|
@ -87,9 +87,9 @@ class App.Auth
|
||||||
@logout: ->
|
@logout: ->
|
||||||
App.Log.log 'Auth', 'notice', 'logout'
|
App.Log.log 'Auth', 'notice', 'logout'
|
||||||
App.Com.ajax(
|
App.Com.ajax(
|
||||||
id: 'logout',
|
id: 'logout'
|
||||||
type: 'DELETE',
|
type: 'DELETE'
|
||||||
url: '/signout',
|
url: '/signout'
|
||||||
success: =>
|
success: =>
|
||||||
|
|
||||||
# update websocked auth info
|
# update websocked auth info
|
||||||
|
|
|
@ -21,15 +21,18 @@ class App.i18n
|
||||||
_instance ?= new _Singleton
|
_instance ?= new _Singleton
|
||||||
_instance.timestamp( args )
|
_instance.timestamp( args )
|
||||||
|
|
||||||
|
@set: ( args ) ->
|
||||||
|
if _instance == undefined
|
||||||
|
_instance ?= new _Singleton
|
||||||
|
_instance.set( args )
|
||||||
|
|
||||||
class _Singleton extends Spine.Module
|
class _Singleton extends Spine.Module
|
||||||
@include App.Log
|
@include App.Log
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
@locale = 'de'
|
@map = {}
|
||||||
@timestampFormat = 'yyyy-mm-dd HH:MM'
|
|
||||||
@set( @locale )
|
|
||||||
|
|
||||||
# $('.translation [contenteditable]')
|
# observe if text has been translated
|
||||||
$('body')
|
$('body')
|
||||||
.delegate '.translation', 'focus', (e) =>
|
.delegate '.translation', 'focus', (e) =>
|
||||||
$this = $(e.target)
|
$this = $(e.target)
|
||||||
|
@ -76,6 +79,8 @@ class _Singleton extends Spine.Module
|
||||||
return $this
|
return $this
|
||||||
|
|
||||||
set: ( locale ) ->
|
set: ( locale ) ->
|
||||||
|
@locale = locale
|
||||||
|
@timestampFormat = 'yyyy-mm-dd HH:MM'
|
||||||
@map = {}
|
@map = {}
|
||||||
App.Com.ajax(
|
App.Com.ajax(
|
||||||
id: 'i18n-set-' + locale,
|
id: 'i18n-set-' + locale,
|
||||||
|
|
17
app/controllers/tests_controller.rb
Normal file
17
app/controllers/tests_controller.rb
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
class TestsController < ApplicationController
|
||||||
|
|
||||||
|
# GET /test
|
||||||
|
def index
|
||||||
|
respond_to do |format|
|
||||||
|
format.html # index.html.erb
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# GET /test/wait
|
||||||
|
def wait
|
||||||
|
sleep params[:sec].to_i
|
||||||
|
result = { :success => true }
|
||||||
|
render :json => result
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -15,9 +15,15 @@ class TranslationsController < ApplicationController
|
||||||
list.push data
|
list.push data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
timestamp_map_default = 'yyyy-mm-dd HH:MM'
|
||||||
|
timestamp_map = {
|
||||||
|
:de => 'dd.mm.yyyy HH:MM',
|
||||||
|
}
|
||||||
|
timestamp = timestamp_map[ params[:locale].to_sym ] || timestamp_map_default
|
||||||
|
|
||||||
render :json => {
|
render :json => {
|
||||||
:list => list,
|
:list => list,
|
||||||
:timestampFormat => 'dd.mm.yyyy HH:MM',
|
:timestampFormat => timestamp,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
15
app/views/tests/index.html.erb
Normal file
15
app/views/tests/index.html.erb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/tests/qunit-1.10.0.css">
|
||||||
|
<script src="/assets/tests/qunit-1.10.0.js"></script>
|
||||||
|
<script src="/assets/tests/tests.js"></script>
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
padding-top: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div id="qunit"></div>
|
9
config/routes/test.rb
Normal file
9
config/routes/test.rb
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
module ExtraRoutes
|
||||||
|
def add(map)
|
||||||
|
|
||||||
|
map.match '/test', :to => 'tests#index'
|
||||||
|
map.match '/test/wait/:sec', :to => 'tests#wait'
|
||||||
|
|
||||||
|
end
|
||||||
|
module_function :add
|
||||||
|
end
|
|
@ -1824,6 +1824,8 @@ Translation.create( :locale => 'de', :source => "Create your first Ticket", :tar
|
||||||
Translation.create( :locale => 'de', :source => "You have not created a Ticket yet.", :target => "Sie haben noch kein Ticket erstellt.", :updated_by_id => 1, :created_by_id => 1 )
|
Translation.create( :locale => 'de', :source => "You have not created a Ticket yet.", :target => "Sie haben noch kein Ticket erstellt.", :updated_by_id => 1, :created_by_id => 1 )
|
||||||
Translation.create( :locale => 'de', :source => "The way to communicate with us is this thing called \"Ticket\".", :target => "Der Weg um mit uns zu kommunizieren ist das sogenannte \"Ticket\".", :updated_by_id => 1, :created_by_id => 1 )
|
Translation.create( :locale => 'de', :source => "The way to communicate with us is this thing called \"Ticket\".", :target => "Der Weg um mit uns zu kommunizieren ist das sogenannte \"Ticket\".", :updated_by_id => 1, :created_by_id => 1 )
|
||||||
Translation.create( :locale => 'de', :source => "or", :target => "oder", :updated_by_id => 1, :created_by_id => 1 )
|
Translation.create( :locale => 'de', :source => "or", :target => "oder", :updated_by_id => 1, :created_by_id => 1 )
|
||||||
|
Translation.create( :locale => 'de', :source => "yes", :target => "ja", :updated_by_id => 1, :created_by_id => 1 )
|
||||||
|
Translation.create( :locale => 'de', :source => "no", :target => "nein", :updated_by_id => 1, :created_by_id => 1 )
|
||||||
|
|
||||||
|
|
||||||
#Translation.create( :locale => 'de', :source => "", :target => "", :updated_by_id => 1, :created_by_id => 1 )
|
#Translation.create( :locale => 'de', :source => "", :target => "", :updated_by_id => 1, :created_by_id => 1 )
|
||||||
|
|
1
public/assets/tests/ajax-test.json
Normal file
1
public/assets/tests/ajax-test.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ "success": true }
|
235
public/assets/tests/qunit-1.10.0.css
Normal file
235
public/assets/tests/qunit-1.10.0.css
Normal file
|
@ -0,0 +1,235 @@
|
||||||
|
/**
|
||||||
|
* QUnit v1.10.0 - A JavaScript Unit Testing Framework
|
||||||
|
*
|
||||||
|
* http://qunitjs.com
|
||||||
|
*
|
||||||
|
* Copyright 2012 jQuery Foundation and other contributors
|
||||||
|
* Released under the MIT license.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Font Family and Sizes */
|
||||||
|
|
||||||
|
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
|
||||||
|
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
|
||||||
|
#qunit-tests { font-size: smaller; }
|
||||||
|
|
||||||
|
|
||||||
|
/** Resets */
|
||||||
|
|
||||||
|
#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Header */
|
||||||
|
|
||||||
|
#qunit-header {
|
||||||
|
padding: 0.5em 0 0.5em 1em;
|
||||||
|
|
||||||
|
color: #8699a4;
|
||||||
|
background-color: #0d3349;
|
||||||
|
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 1em;
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
border-radius: 5px 5px 0 0;
|
||||||
|
-moz-border-radius: 5px 5px 0 0;
|
||||||
|
-webkit-border-top-right-radius: 5px;
|
||||||
|
-webkit-border-top-left-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-header a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #c2ccd1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-header a:hover,
|
||||||
|
#qunit-header a:focus {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-testrunner-toolbar label {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 .5em 0 .1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-banner {
|
||||||
|
height: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-testrunner-toolbar {
|
||||||
|
padding: 0.5em 0 0.5em 2em;
|
||||||
|
color: #5E740B;
|
||||||
|
background-color: #eee;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-userAgent {
|
||||||
|
padding: 0.5em 0 0.5em 2.5em;
|
||||||
|
background-color: #2b81af;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-container {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Tests: Pass/Fail */
|
||||||
|
|
||||||
|
#qunit-tests {
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests li {
|
||||||
|
padding: 0.4em 0.5em 0.4em 2.5em;
|
||||||
|
border-bottom: 1px solid #fff;
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests li strong {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests li a {
|
||||||
|
padding: 0.5em;
|
||||||
|
color: #c2ccd1;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
#qunit-tests li a:hover,
|
||||||
|
#qunit-tests li a:focus {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests ol {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
padding: 0.5em;
|
||||||
|
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
margin-top: .2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests th {
|
||||||
|
text-align: right;
|
||||||
|
vertical-align: top;
|
||||||
|
padding: 0 .5em 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests td {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests pre {
|
||||||
|
margin: 0;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests del {
|
||||||
|
background-color: #e0f2be;
|
||||||
|
color: #374e0c;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests ins {
|
||||||
|
background-color: #ffcaca;
|
||||||
|
color: #500;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Test Counts */
|
||||||
|
|
||||||
|
#qunit-tests b.counts { color: black; }
|
||||||
|
#qunit-tests b.passed { color: #5E740B; }
|
||||||
|
#qunit-tests b.failed { color: #710909; }
|
||||||
|
|
||||||
|
#qunit-tests li li {
|
||||||
|
padding: 5px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: none;
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Passing Styles */
|
||||||
|
|
||||||
|
#qunit-tests li li.pass {
|
||||||
|
color: #3c510c;
|
||||||
|
background-color: #fff;
|
||||||
|
border-left: 10px solid #C6E746;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
|
||||||
|
#qunit-tests .pass .test-name { color: #366097; }
|
||||||
|
|
||||||
|
#qunit-tests .pass .test-actual,
|
||||||
|
#qunit-tests .pass .test-expected { color: #999999; }
|
||||||
|
|
||||||
|
#qunit-banner.qunit-pass { background-color: #C6E746; }
|
||||||
|
|
||||||
|
/*** Failing Styles */
|
||||||
|
|
||||||
|
#qunit-tests li li.fail {
|
||||||
|
color: #710909;
|
||||||
|
background-color: #fff;
|
||||||
|
border-left: 10px solid #EE5757;
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests > li:last-child {
|
||||||
|
border-radius: 0 0 5px 5px;
|
||||||
|
-moz-border-radius: 0 0 5px 5px;
|
||||||
|
-webkit-border-bottom-right-radius: 5px;
|
||||||
|
-webkit-border-bottom-left-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests .fail { color: #000000; background-color: #EE5757; }
|
||||||
|
#qunit-tests .fail .test-name,
|
||||||
|
#qunit-tests .fail .module-name { color: #000000; }
|
||||||
|
|
||||||
|
#qunit-tests .fail .test-actual { color: #EE5757; }
|
||||||
|
#qunit-tests .fail .test-expected { color: green; }
|
||||||
|
|
||||||
|
#qunit-banner.qunit-fail { background-color: #EE5757; }
|
||||||
|
|
||||||
|
|
||||||
|
/** Result */
|
||||||
|
|
||||||
|
#qunit-testresult {
|
||||||
|
padding: 0.5em 0.5em 0.5em 2.5em;
|
||||||
|
|
||||||
|
color: #2b81af;
|
||||||
|
background-color: #D2E0E6;
|
||||||
|
|
||||||
|
border-bottom: 1px solid white;
|
||||||
|
}
|
||||||
|
#qunit-testresult .module-name {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Fixture */
|
||||||
|
|
||||||
|
#qunit-fixture {
|
||||||
|
position: absolute;
|
||||||
|
top: -10000px;
|
||||||
|
left: -10000px;
|
||||||
|
width: 1000px;
|
||||||
|
height: 1000px;
|
||||||
|
}
|
1977
public/assets/tests/qunit-1.10.0.js
Normal file
1977
public/assets/tests/qunit-1.10.0.js
Normal file
File diff suppressed because it is too large
Load diff
271
public/assets/tests/tests.js
Normal file
271
public/assets/tests/tests.js
Normal file
|
@ -0,0 +1,271 @@
|
||||||
|
|
||||||
|
// AJAX
|
||||||
|
App.Com.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: '/assets/tests/ajax-test.json',
|
||||||
|
success: function (data) {
|
||||||
|
test( "ajax get 200", function() {
|
||||||
|
ok( true, "File found!" );
|
||||||
|
equal( data.success, true, "content parsable and ok!" );
|
||||||
|
equal( data.success2, undefined, "content parsable and ok!" );
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
test( "ajax", function() {
|
||||||
|
ok( false, "Failed!" );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// ajax queueing
|
||||||
|
App.Com.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: '/test/wait/2',
|
||||||
|
queue: true,
|
||||||
|
success: function (data) {
|
||||||
|
test( "ajax - queue - ajax get 200 1/2", function() {
|
||||||
|
|
||||||
|
// check queue
|
||||||
|
ok( !window.testAjax, 'ajax - queue - check queue' );
|
||||||
|
window.testAjax = true;
|
||||||
|
equal( data.success, true, "ajax - queue - content parsable and ok!" );
|
||||||
|
equal( data.success2, undefined, "ajax - queue - content parsable and ok!" );
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
test( "ajax", function() {
|
||||||
|
ok( false, "Failed!" );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
App.Com.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: '/test/wait/1',
|
||||||
|
queue: true,
|
||||||
|
success: function (data) {
|
||||||
|
test( "ajax - queue - ajax get 200 2/2", function() {
|
||||||
|
// check queue
|
||||||
|
ok( window.testAjax, 'ajax - queue - check queue' )
|
||||||
|
window.testAjax = undefined;
|
||||||
|
|
||||||
|
equal( data.success, true, "content parsable and ok!" );
|
||||||
|
equal( data.success2, undefined, "content parsable and ok!" );
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
test( "ajax", function() {
|
||||||
|
ok( false, "Failed!" );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// ajax parallel
|
||||||
|
App.Com.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: '/test/wait/2',
|
||||||
|
success: function (data) {
|
||||||
|
test( "ajax - parallel - ajax get 200 1/2", function() {
|
||||||
|
|
||||||
|
// check queue
|
||||||
|
ok( window.testAjax, 'ajax - parallel - check queue' );
|
||||||
|
window.testAjax = undefined;
|
||||||
|
equal( data.success, true, "ajax - parallel - content parsable and ok!" );
|
||||||
|
equal( data.success2, undefined, "ajax - parallel - content parsable and ok!" );
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
test( "ajax", function() {
|
||||||
|
ok( false, "Failed!" );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
App.Com.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: '/test/wait/1',
|
||||||
|
success: function (data) {
|
||||||
|
test( "ajax - parallel - ajax get 200 2/2", function() {
|
||||||
|
// check queue
|
||||||
|
ok( !window.testAjax, 'ajax - parallel - check queue' )
|
||||||
|
window.testAjax = true;
|
||||||
|
|
||||||
|
equal( data.success, true, "content parsable and ok!" );
|
||||||
|
equal( data.success2, undefined, "content parsable and ok!" );
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
test( "ajax", function() {
|
||||||
|
ok( false, "Failed!" );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// i18n
|
||||||
|
test( "i18n", function() {
|
||||||
|
|
||||||
|
// de
|
||||||
|
App.i18n.set('de');
|
||||||
|
var translated = App.i18n.translateContent('yes');
|
||||||
|
equal( translated, 'ja', 'de - yes / ja translated correctly' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('<test&now>//*äöüß');
|
||||||
|
equal( translated, '<test&now>//*äöüß', 'de - <test&now>//*äöüß' );
|
||||||
|
|
||||||
|
var timestamp = App.i18n.translateTimestamp('2012-11-06T21:07:24Z');
|
||||||
|
equal( timestamp, '06.11.2012 22:07', 'de - timestamp translated correctly' );
|
||||||
|
|
||||||
|
// en
|
||||||
|
App.i18n.set('en');
|
||||||
|
translated = App.i18n.translateContent('yes');
|
||||||
|
equal( translated, 'yes', 'en - yes translated correctly' );
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('<test&now>');
|
||||||
|
equal( translated, '<test&now>', 'en - <test&now>' );
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp('2012-11-06T21:07:24Z');
|
||||||
|
equal( timestamp, '2012-11-06 22:07', 'en - timestamp translated correctly' );
|
||||||
|
});
|
||||||
|
|
||||||
|
// events
|
||||||
|
test( "events simple", function() {
|
||||||
|
|
||||||
|
// single bind
|
||||||
|
App.Event.bind( 'test1', function(data) {
|
||||||
|
ok( true, 'event received - single bind');
|
||||||
|
equal( data.success, true, 'event received - data ok - single bind');
|
||||||
|
});
|
||||||
|
App.Event.bind( 'test2', function(data) {
|
||||||
|
ok( false, 'should not be triggered - single bind');
|
||||||
|
});
|
||||||
|
App.Event.trigger( 'test1', { success: true } );
|
||||||
|
|
||||||
|
App.Event.unbind( 'test1')
|
||||||
|
App.Event.bind( 'test1', function(data) {
|
||||||
|
ok( false, 'should not be triggered - single bind');
|
||||||
|
});
|
||||||
|
App.Event.unbind( 'test1');
|
||||||
|
App.Event.trigger( 'test1', { success: true } );
|
||||||
|
|
||||||
|
// multi bind
|
||||||
|
App.Event.bind( 'test1-1 test1-2', function(data) {
|
||||||
|
ok( true, 'event received - multi bind');
|
||||||
|
equal( data.success, true, 'event received - data ok - multi bind');
|
||||||
|
});
|
||||||
|
App.Event.bind( 'test1-3', function(data) {
|
||||||
|
ok( false, 'should not be triggered - multi bind');
|
||||||
|
});
|
||||||
|
App.Event.trigger( 'test1-2', { success: true } );
|
||||||
|
|
||||||
|
App.Event.unbind( 'test1-1')
|
||||||
|
App.Event.bind( 'test1-1', function(data) {
|
||||||
|
ok( false, 'should not be triggered - multi bind');
|
||||||
|
});
|
||||||
|
App.Event.trigger( 'test1-2', { success: true } );
|
||||||
|
});
|
||||||
|
|
||||||
|
test( "events level", function() {
|
||||||
|
|
||||||
|
// bind with level
|
||||||
|
App.Event.bind( 'test3', function(data) {
|
||||||
|
ok( false, 'should not be triggered!');
|
||||||
|
}, 'test-level' );
|
||||||
|
|
||||||
|
// unbind with level
|
||||||
|
App.Event.unbindLevel( 'test-level' );
|
||||||
|
|
||||||
|
// bind with level
|
||||||
|
App.Event.bind( 'test3', function(data) {
|
||||||
|
ok( true, 'event received');
|
||||||
|
equal( data.success, true, 'event received - data ok - level bind');
|
||||||
|
}, 'test-level' );
|
||||||
|
App.Event.trigger( 'test3', { success: true} );
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// local store
|
||||||
|
test( "local store", function() {
|
||||||
|
|
||||||
|
var tests = [
|
||||||
|
'some 123äöüßadajsdaiosjdiaoidj',
|
||||||
|
{ key: 123 },
|
||||||
|
{ key1: { key1: [1,2,3,4] }, key2: [1,2,'äöüß'] },
|
||||||
|
];
|
||||||
|
|
||||||
|
// write/get
|
||||||
|
App.Store.clear()
|
||||||
|
_.each(tests, function(test) {
|
||||||
|
App.Store.write( 'test1', test );
|
||||||
|
var item = App.Store.get( 'test1' );
|
||||||
|
deepEqual( test, item, 'write/get - compare stored and actual data' )
|
||||||
|
});
|
||||||
|
|
||||||
|
// undefined/get
|
||||||
|
App.Store.clear()
|
||||||
|
_.each(tests, function(test) {
|
||||||
|
var item = App.Store.get( 'test1' );
|
||||||
|
deepEqual( undefined, item, 'undefined/get - compare not existing data and actual data' )
|
||||||
|
});
|
||||||
|
|
||||||
|
// write/get/delete
|
||||||
|
var tests = [
|
||||||
|
{ key: 'test1', value: 'some 123äöüßadajsdaiosjdiaoidj' },
|
||||||
|
{ key: 123, value: { a: 123, b: 'sdaad' } },
|
||||||
|
{ key: '123äöüß', value: { key1: [1,2,3,4] }, key2: [1,2,'äöüß'] },
|
||||||
|
];
|
||||||
|
|
||||||
|
App.Store.clear()
|
||||||
|
_.each(tests, function(test) {
|
||||||
|
App.Store.write( test.key, test.value );
|
||||||
|
});
|
||||||
|
|
||||||
|
_.each(tests, function(test) {
|
||||||
|
var item = App.Store.get( test.key );
|
||||||
|
deepEqual( test.value, item, 'write/get/delete - compare stored and actual data' );
|
||||||
|
App.Store.delete( test.key );
|
||||||
|
item = App.Store.get( test.key );
|
||||||
|
deepEqual( undefined, item, 'write/get/delete - compare deleted data' );
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// config
|
||||||
|
test( "config", function() {
|
||||||
|
|
||||||
|
// simple
|
||||||
|
var tests = [
|
||||||
|
{ key: 'test1', value: 'some 123äöüßadajsdaiosjdiaoidj' },
|
||||||
|
{ key: 123, value: { a: 123, b: 'sdaad' } },
|
||||||
|
{ key: '123äöüß', value: { key1: [1,2,3,4] }, key2: [1,2,'äöüß'] },
|
||||||
|
];
|
||||||
|
|
||||||
|
_.each(tests, function(test) {
|
||||||
|
App.Config.set( test.key, test.value )
|
||||||
|
});
|
||||||
|
|
||||||
|
_.each(tests, function(test) {
|
||||||
|
var item = App.Config.get( test.key )
|
||||||
|
deepEqual( item, test.value, 'set/get tests' );
|
||||||
|
});
|
||||||
|
|
||||||
|
// group
|
||||||
|
var test_groups = [
|
||||||
|
{ key: 'test2', value: [ 'some 123äöüßadajsdaiosjdiaoidj' ] },
|
||||||
|
{ key: 1234, value: { a: 123, b: 'sdaad' } },
|
||||||
|
{ key: '123äöüß', value: { key1: [1,2,3,4,5,6] }, key2: [1,2,'äöüß'] },
|
||||||
|
];
|
||||||
|
var group = {};
|
||||||
|
_.each(test_groups, function(test) {
|
||||||
|
App.Config.set( test.key, test.value, 'group1' );
|
||||||
|
group[test.key] = test.value
|
||||||
|
});
|
||||||
|
|
||||||
|
// verify whole group
|
||||||
|
var item = App.Config.get( 'group1' );
|
||||||
|
deepEqual( item, group, 'group - verify group hash');
|
||||||
|
|
||||||
|
// verify each setting
|
||||||
|
_.each(test_groups, function(test) {
|
||||||
|
var item = App.Config.get( test.key, 'group1' );
|
||||||
|
deepEqual( item, test.value, 'group set/get tests' );
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in a new issue