Maintenance: Improves QUnit tests usability
This commit is contained in:
parent
e26d3ecfd3
commit
77d147efaf
90 changed files with 12748 additions and 9860 deletions
|
@ -4,6 +4,20 @@ class TestsController < ApplicationController
|
||||||
|
|
||||||
prepend_before_action -> { authentication_check_only }
|
prepend_before_action -> { authentication_check_only }
|
||||||
|
|
||||||
|
layout 'tests', except: %i[wait raised_exception]
|
||||||
|
|
||||||
|
def show
|
||||||
|
@filename = params[:name]
|
||||||
|
|
||||||
|
if lookup_context.exists? @filename, 'tests'
|
||||||
|
render @filename
|
||||||
|
elsif @filename.starts_with? 'form'
|
||||||
|
render 'form'
|
||||||
|
else
|
||||||
|
render
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# GET /test/wait
|
# GET /test/wait
|
||||||
def wait
|
def wait
|
||||||
sleep params[:sec].to_i
|
sleep params[:sec].to_i
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<%= yield %>
|
<%= content_for?(:content) ? yield(:content) : yield %>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
22
app/views/layouts/tests.html.erb
Normal file
22
app/views/layouts/tests.html.erb
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<% content_for :content do %>
|
||||||
|
<link rel="stylesheet" href="/assets/tests/qunit-2.17.2.css">
|
||||||
|
<%= javascript_include_tag "/assets/tests/qunit-2.17.2.js",
|
||||||
|
"/assets/tests/sinon-9.2.4",
|
||||||
|
"/assets/tests/syn-0.15.0",
|
||||||
|
"/assets/tests/qunit/#{@filename}.js",
|
||||||
|
nonce: true %>
|
||||||
|
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
padding-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit {
|
||||||
|
position: initial;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<%= yield %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= render template: 'layouts/application' %>
|
|
@ -1,13 +0,0 @@
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/color_object.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
|
@ -1,14 +0,0 @@
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/core.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
|
@ -1,21 +1,7 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
<div id="qunit" class="u-dontfold"></div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<form class="form-stacked pull-left">
|
<form class="form-stacked pull-left">
|
||||||
<div id="forms"></div>
|
<div id="forms"></div>
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_autocompletion_ajax.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,21 +0,0 @@
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/syn-0.14.1.js", "/assets/tests/form_color.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_column_select.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_core_workflow.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_datetime.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_extended.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,16 +1,3 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_find.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
<div id="qunit" class="u-dontfold"></div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_searchable_select.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,21 +0,0 @@
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/syn-0.14.1.js", "/assets/tests/form_skip_rendering.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/syn-0.14.1.js", "/assets/tests/form_sla_times.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_ticket_perform_action.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_timer.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_tree_select.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,16 +1,3 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_trim.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
<div id="qunit" class="u-dontfold"></div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/form_validation.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms"></div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,16 +1,3 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/html_utils.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
<div id="qunit" class="u-dontfold"></div>
|
||||||
|
|
||||||
<div id="image2data1"></div>
|
<div id="image2data1"></div>
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/i18n.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
|
@ -1,15 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/image_service.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/kb_video_embeding.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
|
@ -1,16 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/local_storage.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/model.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/model_binding.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/model_ticket.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/sinon-9.2.4", "/assets/tests/model_ui.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
|
@ -1,15 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/session.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
1
app/views/tests/show.html.erb
Normal file
1
app/views/tests/show.html.erb
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<div id="qunit" class="u-dontfold"></div>
|
|
@ -1,16 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/table.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div id="table"></div>
|
|
|
@ -1,16 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/table_extended.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div id="table"></div>
|
|
|
@ -1,16 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/taskbar.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div id="taskbars"></div>
|
|
|
@ -1,24 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/text_module.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<form class="form-stacked pull-left">
|
|
||||||
<div id="forms">
|
|
||||||
<div class="js-textarea richtext-content articleNewEdit-body" contenteditable="true" data-name="body">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<button type="submit" class="btn btn-primary submit">Submit</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
|
@ -1,11 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/sinon-9.2.4", "/assets/tests/ticket_macro.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/ticket_selector.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
|
|
||||||
<%= javascript_include_tag "/assets/tests/qunit-1.21.0.js", "/assets/tests/ui.js", nonce: true %>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<%= javascript_tag nonce: true do -%>
|
|
||||||
<% end -%>
|
|
||||||
|
|
||||||
<div id="qunit" class="u-dontfold"></div>
|
|
|
@ -520,6 +520,26 @@
|
||||||
"confidence": "Medium",
|
"confidence": "Medium",
|
||||||
"note": "Admin configured RegExp"
|
"note": "Admin configured RegExp"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"warning_type": "Dynamic Render Path",
|
||||||
|
"warning_code": 15,
|
||||||
|
"fingerprint": "c52f57d32456c9ab6dba6dfc93bd8effa16829a87a9ce9368da83a35fc6cf1a7",
|
||||||
|
"check_name": "Render",
|
||||||
|
"message": "Render path contains parameter value",
|
||||||
|
"file": "app/controllers/tests_controller.rb",
|
||||||
|
"line": 13,
|
||||||
|
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
|
||||||
|
"code": "render(action => params[:name], {})",
|
||||||
|
"render_path": null,
|
||||||
|
"location": {
|
||||||
|
"type": "method",
|
||||||
|
"class": "TestsController",
|
||||||
|
"method": "show"
|
||||||
|
},
|
||||||
|
"user_input": "params[:name]",
|
||||||
|
"confidence": "High",
|
||||||
|
"note": "Running QUnit tests"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"warning_type": "SSL Verification Bypass",
|
"warning_type": "SSL Verification Bypass",
|
||||||
"warning_code": 71,
|
"warning_code": 71,
|
||||||
|
|
|
@ -1,43 +1,11 @@
|
||||||
# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
|
# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
|
||||||
|
|
||||||
|
if !Rails.env.production?
|
||||||
Zammad::Application.routes.draw do
|
Zammad::Application.routes.draw do
|
||||||
|
get '/tests_:name', to: 'tests#show'
|
||||||
|
|
||||||
match '/tests_core', to: 'tests#core', via: :get
|
|
||||||
match '/tests_session', to: 'tests#session', via: :get
|
|
||||||
match '/tests_local_storage', to: 'tests#local_storage', via: :get
|
|
||||||
match '/tests_ui', to: 'tests#ui', via: :get
|
|
||||||
match '/tests_i18n', to: 'tests#i18n', via: :get
|
|
||||||
match '/tests_model', to: 'tests#model', via: :get
|
|
||||||
match '/tests_model_binding', to: 'tests#model_binding', via: :get
|
|
||||||
match '/tests_model_ui', to: 'tests#model_ui', via: :get
|
|
||||||
match '/tests_model_ticket', to: 'tests#model_ticket', via: :get
|
|
||||||
match '/tests_form', to: 'tests#form', via: :get
|
|
||||||
match '/tests_form_tree_select', to: 'tests#form_tree_select', via: :get
|
|
||||||
match '/tests_form_find', to: 'tests#form_find', via: :get
|
|
||||||
match '/tests_form_trim', to: 'tests#form_trim', via: :get
|
|
||||||
match '/tests_form_extended', to: 'tests#form_extended', via: :get
|
|
||||||
match '/tests_form_timer', to: 'tests#form_timer', via: :get
|
|
||||||
match '/tests_form_color', to: 'tests#form_color', via: :get
|
|
||||||
match '/tests_form_validation', to: 'tests#form_validation', via: :get
|
|
||||||
match '/tests_form_column_select', to: 'tests#form_column_select', via: :get
|
|
||||||
match '/tests_form_searchable_select', to: 'tests#form_searchable_select', via: :get
|
|
||||||
match '/tests_form_autocompletion_ajax', to: 'tests#form_autocompletion_ajax', via: :get
|
|
||||||
match '/tests_form_ticket_perform_action', to: 'tests#form_ticket_perform_action', via: :get
|
|
||||||
match '/tests_form_sla_times', to: 'tests#form_sla_times', via: :get
|
|
||||||
match '/tests_form_skip_rendering', to: 'tests#form_skip_rendering', via: :get
|
|
||||||
match '/tests_form_datetime', to: 'tests#form_datetime', via: :get
|
|
||||||
match '/tests_form_core_workflow', to: 'tests#form_core_workflow', via: :get
|
|
||||||
match '/tests_table', to: 'tests#table', via: :get
|
|
||||||
match '/tests_table_extended', to: 'tests#table_extended', via: :get
|
|
||||||
match '/tests_html_utils', to: 'tests#html_utils', via: :get
|
|
||||||
match '/tests_ticket_macro', to: 'tests#ticket_macro', via: :get
|
|
||||||
match '/tests_ticket_selector', to: 'tests#ticket_selector', via: :get
|
|
||||||
match '/tests_taskbar', to: 'tests#taskbar', via: :get
|
|
||||||
match '/tests_image_service', to: 'tests#image_service', via: :get
|
|
||||||
match '/tests_text_module', to: 'tests#text_module', via: :get
|
|
||||||
match '/tests_color_object', to: 'tests#color_object', via: :get
|
|
||||||
match '/tests_kb_video_embeding', to: 'tests#kb_video_embeding', via: :get
|
|
||||||
match '/tests/wait/:sec', to: 'tests#wait', via: :get
|
match '/tests/wait/:sec', to: 'tests#wait', via: :get
|
||||||
match '/tests/raised_exception', to: 'tests#error_raised_exception', via: :get
|
match '/tests/raised_exception', to: 'tests#error_raised_exception', via: :get
|
||||||
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
test('test color object', function() {
|
|
||||||
let hex = new App.ColorObject('#09f609')
|
|
||||||
let hsl = new App.ColorObject([0.5, 0.2, 0.3])
|
|
||||||
|
|
||||||
deepEqual(hex.asHslArray(), [1/3, 0.9294117647058824, 0.5], 'HEX converted to HSL components')
|
|
||||||
deepEqual(hsl.asHslArray(), [0.5, 0.2, 0.3], 'HSL components returned as original input')
|
|
||||||
equal(hex.asString(), '#09f609', 'HEX represented as original input')
|
|
||||||
equal(hsl.asString(), 'hsl(180,20%,30%)', 'HSL components represented as HSL string')
|
|
||||||
|
|
||||||
hex.updateWithString('#fff')
|
|
||||||
equal(hex.asString(), '#fff', 'color updated')
|
|
||||||
|
|
||||||
hsl.updateWithHslComponent(0.25, 1)
|
|
||||||
deepEqual(hsl.asHslArray(), [0.5, 0.25, 0.3], 'given HSL component updated')
|
|
||||||
|
|
||||||
deepEqual(Array.from(App.ColorObject.anyToRgb('#ff0000')), [255, 0, 0, 255], 'any to RGB')
|
|
||||||
deepEqual(App.ColorObject.anyToHslArray('#ff0000'), [0,1,0.5], 'any to HSL components')
|
|
||||||
equal(App.ColorObject.anyToHslString('#ff0000'), 'hsl(0,100%,50%)', 'any to HSL string')
|
|
||||||
deepEqual(App.ColorObject.rgbToHslArray([255, 0, 0]), [0,1,0.5], 'RGB to HSL components')
|
|
||||||
equal(App.ColorObject.hslArrayToHslString([0.5, 0.25, 0.3]), 'hsl(180,25%,30%)', 'HSL components to HSL string')
|
|
||||||
})
|
|
|
@ -1,59 +0,0 @@
|
||||||
|
|
||||||
// form
|
|
||||||
test( "find form check", function() {
|
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>find form check</h1><form id="form1"></form>')
|
|
||||||
var form1 = App.ControllerForm.findForm($('#form1'))
|
|
||||||
equal(form1.is('form'), true)
|
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>find form check</h1><form id="form2"><input class="js-input" value="test 123"></form>')
|
|
||||||
var form2 = App.ControllerForm.findForm($('#form2 .js-input'))
|
|
||||||
equal(form2.is('form'), true)
|
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>find form check</h1><form id="form3"><input class="js-input" value="test 123"><button class="js-button">text</button></form>')
|
|
||||||
var form3 = App.ControllerForm.findForm($('#form3 .js-button'))
|
|
||||||
equal(form3.is('form'), true)
|
|
||||||
App.ControllerForm.disable($('#form3 .js-button'))
|
|
||||||
equal($('#form3 .js-button').prop('readonly'), true)
|
|
||||||
equal($('#form3 .js-button').prop('disabled'), true)
|
|
||||||
equal($('#form3 .js-input').prop('readonly'), true)
|
|
||||||
equal($('#form3 .js-input').prop('disabled'), false)
|
|
||||||
|
|
||||||
App.ControllerForm.enable($('#form3 .js-button'))
|
|
||||||
equal($('#form3 .js-button').prop('readonly'), false)
|
|
||||||
equal($('#form3 .js-button').prop('disabled'), false)
|
|
||||||
equal($('#form3 .js-input').prop('readonly'), false)
|
|
||||||
equal($('#form3 .js-input').prop('disabled'), false)
|
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>find form check by only disable button</h1><form id="form31"><input class="js-input" value="test 123"><button class="js-button">text</button></form>')
|
|
||||||
var form31 = App.ControllerForm.findForm($('#form31 .js-button'))
|
|
||||||
|
|
||||||
App.ControllerForm.disable($('#form31 .js-button'), 'button')
|
|
||||||
|
|
||||||
equal($('#form31 .js-button').prop('readonly'), true)
|
|
||||||
equal($('#form31 .js-button').prop('disabled'), true)
|
|
||||||
equal($('#form31 .js-input').prop('readonly'), false)
|
|
||||||
equal($('#form31 .js-input').prop('disabled'), false)
|
|
||||||
|
|
||||||
App.ControllerForm.enable($('#form31 .js-button'))
|
|
||||||
equal($('#form31 .js-button').prop('readonly'), false)
|
|
||||||
equal($('#form31 .js-button').prop('disabled'), false)
|
|
||||||
equal($('#form31 .js-input').prop('readonly'), false)
|
|
||||||
equal($('#form31 .js-input').prop('disabled'), false)
|
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>find form check</h1><div id="form4"><input class="js-input" value="test 123"><button class="js-button">text</button></div>')
|
|
||||||
var form4 = App.ControllerForm.findForm($('#form4 .js-button'))
|
|
||||||
equal(form4.is('form'), false)
|
|
||||||
App.ControllerForm.disable($('#form4 .js-button'))
|
|
||||||
equal($('#form4 .js-button').prop('readonly'), true)
|
|
||||||
equal($('#form4 .js-button').prop('disabled'), true)
|
|
||||||
equal($('#form4 .js-input').prop('readonly'), false)
|
|
||||||
equal($('#form4 .js-input').prop('disabled'), false)
|
|
||||||
|
|
||||||
App.ControllerForm.enable($('#form4 .js-button'))
|
|
||||||
equal($('#form4 .js-button').prop('readonly'), false)
|
|
||||||
equal($('#form4 .js-button').prop('disabled'), false)
|
|
||||||
equal($('#form4 .js-input').prop('readonly'), false)
|
|
||||||
equal($('#form4 .js-input').prop('disabled'), false)
|
|
||||||
|
|
||||||
});
|
|
|
@ -1,230 +0,0 @@
|
||||||
test('i18n .detectBrowserLocale', function() {
|
|
||||||
var original_userLanguage = window.navigator.userLanguage
|
|
||||||
var original_language = window.navigator.language
|
|
||||||
var original_languages = window.navigator.languages
|
|
||||||
|
|
||||||
var reset = function(){
|
|
||||||
window.navigator.userLanguage = original_userLanguage
|
|
||||||
window.navigator.language = original_language
|
|
||||||
window.navigator.languages = original_languages
|
|
||||||
}
|
|
||||||
|
|
||||||
var mock = function(languages, language, userLanguage){
|
|
||||||
Object.defineProperty(window.navigator, 'language', {value: language, configurable: true });
|
|
||||||
Object.defineProperty(window.navigator, 'languages', {value: languages, configurable: true });
|
|
||||||
Object.defineProperty(window.navigator, 'userLanguage', {value: userLanguage, configurable: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
mock(undefined, undefined, undefined)
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(undefined, undefined, 'non-existant');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(undefined, undefined, 'en');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(undefined, undefined, 'lt');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'lt')
|
|
||||||
|
|
||||||
mock(undefined, 'lt', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'lt')
|
|
||||||
|
|
||||||
mock(undefined, 'en', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(['en'], 'lt', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(['en-us'], 'lt', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(['en-US'], 'lt', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(['lt', 'en-US'], 'lt', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'lt')
|
|
||||||
|
|
||||||
mock(['en-GB', 'en-US'], 'lt', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-gb')
|
|
||||||
|
|
||||||
mock(['en-XYZ'], 'lt', 'lv');
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'en-us')
|
|
||||||
|
|
||||||
mock(['xyz', 'lt'], 'lv', undefined);
|
|
||||||
equal(App.i18n.detectBrowserLocale(), 'lt')
|
|
||||||
|
|
||||||
reset()
|
|
||||||
|
|
||||||
// i18n
|
|
||||||
test('i18n', function() {
|
|
||||||
|
|
||||||
// de
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
var translated = App.i18n.translateContent('yes')
|
|
||||||
equal(translated, 'ja', 'de-de - yes / ja translated correctly')
|
|
||||||
|
|
||||||
translated = App.i18n.translatePlain('yes')
|
|
||||||
equal(translated, 'ja', 'de-de - yes / ja translated correctly')
|
|
||||||
|
|
||||||
translated = App.i18n.translateInline('yes')
|
|
||||||
equal(translated, 'ja', 'de-de - yes / ja translated correctly')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('%s ago', 123);
|
|
||||||
equal(translated, 'vor 123', 'de-de - %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('%s ago', '<b>quote</b>')
|
|
||||||
equal(translated, 'vor <b>quote</b>', 'de-de - %s - quote')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('%s %s test', 123, 'xxx |B|')
|
|
||||||
equal(translated, '123 xxx |B| test', 'de-de - %s %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('|%s| %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<b>123</b> xxx test', 'de-de - *%s* %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('||%s|| %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<i>123</i> xxx test', 'de-de - *%s* %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('_%s_ %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<u>123</u> xxx test', 'de-de - _%s_ %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<kbd>123</kbd> xxx test', 'de-de - §%s§ %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('//%s// %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<del>123</del> xxx test', 'de-de - //%s// %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('\'%s\' %s test', 123, 'xxx')
|
|
||||||
equal(translated, ''123' xxx test', 'de-de - \'%s\' %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('<test&now>//*äöüß')
|
|
||||||
equal(translated, '<test&now>//*äöüß', 'de - <test&now>//*äöüß')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('some link [to what ever](http://lalala)')
|
|
||||||
equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'de-de - link')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('some link [to what ever](%s)', 'http://lalala')
|
|
||||||
equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'de-de - link')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('Enables user authentication via %s. Register your app first at [%s](%s).', 'XXX', 'YYY', 'http://lalala')
|
|
||||||
equal(translated, 'Aktivieren der Benutzeranmeldung über XXX. Registriere Deine Anwendung zuerst über <a href="http://lalala" target="_blank">YYY</a>.', 'en-us - link')
|
|
||||||
|
|
||||||
var time_local = new Date();
|
|
||||||
var offset = time_local.getTimezoneOffset();
|
|
||||||
var timestamp = App.i18n.translateTimestamp('2012-11-06T21:07:24Z', offset);
|
|
||||||
equal(timestamp, '06.11.2012 21:07', 'de-de - timestamp translated correctly')
|
|
||||||
|
|
||||||
var timestamp = App.i18n.translateTimestamp('2021-02-08 09:13:20 UTC', offset);
|
|
||||||
equal(timestamp, '08.02.2021 09:13', 'de-de - timestamp translated correctly with UTC format')
|
|
||||||
|
|
||||||
timestamp = App.i18n.translateTimestamp('', offset);
|
|
||||||
equal(timestamp, '', 'de-de - timestamp translated correctly')
|
|
||||||
|
|
||||||
timestamp = App.i18n.translateTimestamp(null, offset);
|
|
||||||
equal(timestamp, null, 'de-de - timestamp translated correctly')
|
|
||||||
|
|
||||||
timestamp = App.i18n.translateTimestamp(undefined, offset);
|
|
||||||
equal(timestamp, undefined, 'de-de - timestamp translated correctly')
|
|
||||||
|
|
||||||
var date = App.i18n.translateDate('2012-11-06', 0)
|
|
||||||
equal(date, '06.11.2012', 'de-de - date translated correctly')
|
|
||||||
|
|
||||||
date = App.i18n.translateDate('', 0)
|
|
||||||
equal(date, '', 'de-de - date translated correctly')
|
|
||||||
|
|
||||||
date = App.i18n.translateDate(null, 0)
|
|
||||||
equal(date, null, 'de-de - date translated correctly')
|
|
||||||
|
|
||||||
date = App.i18n.translateDate(undefined, 0)
|
|
||||||
equal(date, undefined, 'de-de - date translated correctly')
|
|
||||||
|
|
||||||
// en
|
|
||||||
App.i18n.set('en-us')
|
|
||||||
translated = App.i18n.translateContent('yes')
|
|
||||||
equal(translated, 'yes', 'en-us - yes translated correctly')
|
|
||||||
|
|
||||||
translated = App.i18n.translatePlain('yes')
|
|
||||||
equal(translated, 'yes', 'en-us - yes translated correctly')
|
|
||||||
|
|
||||||
translated = App.i18n.translateInline('yes')
|
|
||||||
equal(translated, 'yes', 'en-us - yes translated correctly')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('%s ago', 123);
|
|
||||||
equal(translated, '123 ago', 'en-us - %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('%s ago', '<b>quote</b>')
|
|
||||||
equal(translated, '<b>quote</b> ago', 'en-us - %s - qupte')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('%s %s test', 123, 'xxx')
|
|
||||||
equal(translated, '123 xxx test', 'en-us - %s %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('|%s| %s test', 123, 'xxx |B|')
|
|
||||||
equal(translated, '<b>123</b> xxx |B| test', 'en-us - *%s* %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('||%s|| %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<i>123</i> xxx test', 'en-us - *%s* %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('_%s_ %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<u>123</u> xxx test', 'en-us - _%s_ %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<kbd>123</kbd> xxx test', 'en-us - §%s§ %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('Here you can search for tickets, customers and organizations. Use the wildcard §*§ to find everything. E. g. §smi*§ or §rosent*l§. You also can use ||double quotes|| for searching phrases §"some phrase"§.')
|
|
||||||
equal(translated, 'Here you can search for tickets, customers and organizations. Use the wildcard <kbd>*</kbd> to find everything. E. g. <kbd>smi*</kbd> or <kbd>rosent*l</kbd>. You also can use <i>double quotes</i> for searching phrases <kbd>"some phrase"</kbd>.', 'en-us - §§ §§ §§ || §§')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('//%s// %s test', 123, 'xxx')
|
|
||||||
equal(translated, '<del>123</del> xxx test', 'en-us - //%s// %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('\'%s\' %s test', 123, 'xxx')
|
|
||||||
equal(translated, ''123' xxx test', 'en-us - \'%s\' %s')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('<test&now>')
|
|
||||||
equal(translated, '<test&now>', 'en-us - <test&now>')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('some link [to what ever](http://lalala)')
|
|
||||||
equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'en-us - link')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('some link [to what ever](%s)', 'http://lalala')
|
|
||||||
equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'en-us - link')
|
|
||||||
|
|
||||||
translated = App.i18n.translateContent('Enables user authentication via %s. Register your app first at [%s](%s).', 'XXX', 'YYY', 'http://lalala')
|
|
||||||
equal(translated, 'Enables user authentication via XXX. Register your app first at <a href="http://lalala" target="_blank">YYY</a>.', 'en-us - link')
|
|
||||||
|
|
||||||
timestamp = App.i18n.translateTimestamp('2012-11-06T21:07:24Z', offset)
|
|
||||||
equal(timestamp, '11/06/2012 21:07', 'en - timestamp translated correctly')
|
|
||||||
|
|
||||||
timestamp = App.i18n.translateTimestamp('', offset);
|
|
||||||
equal(timestamp, '', 'en - timestamp translated correctly')
|
|
||||||
|
|
||||||
timestamp = App.i18n.translateTimestamp(null, offset);
|
|
||||||
equal(timestamp, null, 'en - timestamp translated correctly')
|
|
||||||
|
|
||||||
timestamp = App.i18n.translateTimestamp(undefined, offset);
|
|
||||||
equal(timestamp, undefined, 'en - timestamp translated correctly')
|
|
||||||
|
|
||||||
date = App.i18n.translateDate('2012-11-06', 0)
|
|
||||||
equal(date, '11/06/2012', 'en - date translated correctly')
|
|
||||||
|
|
||||||
date = App.i18n.translateDate('', 0)
|
|
||||||
equal(date, '', 'en - date translated correctly')
|
|
||||||
|
|
||||||
date = App.i18n.translateDate(null, 0)
|
|
||||||
equal(date, null, 'en - date translated correctly')
|
|
||||||
|
|
||||||
date = App.i18n.translateDate(undefined, 0)
|
|
||||||
equal(date, undefined, 'en - date translated correctly')
|
|
||||||
|
|
||||||
// locale alias test
|
|
||||||
// de
|
|
||||||
App.i18n.set('de')
|
|
||||||
var translated = App.i18n.translateContent('yes')
|
|
||||||
equal(translated, 'ja', 'de - yes / ja translated correctly')
|
|
||||||
|
|
||||||
// locale detection test
|
|
||||||
// de-ch
|
|
||||||
App.i18n.set('de-ch')
|
|
||||||
var translated = App.i18n.translateContent('yes')
|
|
||||||
equal(translated, 'ja', 'de - yes / ja translated correctly')
|
|
||||||
});
|
|
||||||
})
|
|
|
@ -1,65 +0,0 @@
|
||||||
window.onload = function() {
|
|
||||||
|
|
||||||
test('Test item removal from local storage', function() {
|
|
||||||
var key = 'test_key_1'
|
|
||||||
var value = 'test_value_1'
|
|
||||||
|
|
||||||
App.LocalStorage.set(key, value)
|
|
||||||
|
|
||||||
equal(App.LocalStorage.get(key), value)
|
|
||||||
|
|
||||||
App.LocalStorage.delete(key)
|
|
||||||
|
|
||||||
equal(App.LocalStorage.get(key), undefined)
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Test user-specific item removal from local storage', function() {
|
|
||||||
var key = 'test_key_2'
|
|
||||||
var value = 'test_value_2'
|
|
||||||
var user_id = 2
|
|
||||||
|
|
||||||
App.LocalStorage.set(key, value, user_id)
|
|
||||||
|
|
||||||
equal(App.LocalStorage.get(key, user_id), value)
|
|
||||||
|
|
||||||
App.LocalStorage.delete(key, user_id)
|
|
||||||
|
|
||||||
equal(App.LocalStorage.get(key, user_id), undefined)
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Test key lookup', function() {
|
|
||||||
App.LocalStorage.clear()
|
|
||||||
|
|
||||||
var key = 'test_key_3'
|
|
||||||
var value = 'test_value_3'
|
|
||||||
var user_id = 2
|
|
||||||
var alt_key = 'test_alt_key_3'
|
|
||||||
|
|
||||||
// verify no keys initially
|
|
||||||
equal(App.LocalStorage.keys().length, 0)
|
|
||||||
|
|
||||||
App.LocalStorage.set(key, value, user_id)
|
|
||||||
|
|
||||||
// has 1 key in total
|
|
||||||
equal(App.LocalStorage.keys().length, 1)
|
|
||||||
|
|
||||||
// doesn't return anything with wrong prefix
|
|
||||||
equal(App.LocalStorage.keys('a').length, 0)
|
|
||||||
|
|
||||||
// doesn't return anything since user id not given
|
|
||||||
equal(App.LocalStorage.keys('test').length, 0)
|
|
||||||
|
|
||||||
// correct
|
|
||||||
equal(App.LocalStorage.keys('test', user_id).length, 1)
|
|
||||||
|
|
||||||
// verify value
|
|
||||||
equal(App.LocalStorage.keys('test', user_id)[0].match(key + '$'), key)
|
|
||||||
|
|
||||||
App.LocalStorage.set(alt_key, value)
|
|
||||||
|
|
||||||
// returns 1 key without user id
|
|
||||||
equal(App.LocalStorage.keys('test').length, 1)
|
|
||||||
equal(App.LocalStorage.keys('test')[0], alt_key)
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,110 +0,0 @@
|
||||||
window.onload = function() {
|
|
||||||
|
|
||||||
// model
|
|
||||||
test( "model ui basic tests", function() {
|
|
||||||
|
|
||||||
// load ref object
|
|
||||||
App.Collection.loadAssets({
|
|
||||||
TicketState: {
|
|
||||||
1: {
|
|
||||||
name: 'new', id: 1, updated_at: "2014-11-07T23:43:08.000Z",
|
|
||||||
},
|
|
||||||
2: {
|
|
||||||
name: 'open', id: 2, updated_at: "2014-11-07T23:43:08.000Z",
|
|
||||||
},
|
|
||||||
3: {
|
|
||||||
name: 'closed <>&', id: 3, updated_at: "2014-11-07T23:43:08.000Z",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
// create ticket
|
|
||||||
var attribute1 = {
|
|
||||||
name: 'date', display: 'date 1', tag: 'date', null: true
|
|
||||||
};
|
|
||||||
App.Ticket.configure_attributes.push( attribute1 )
|
|
||||||
var attribute2 = {
|
|
||||||
name: 'textarea', display: 'textarea 1', tag: 'textarea', null: true
|
|
||||||
};
|
|
||||||
App.Ticket.configure_attributes.push( attribute2 )
|
|
||||||
var attribute3 = {
|
|
||||||
name: 'link1', display: 'link 1', linktemplate: 'http://zammad.com', tag: 'input', null: true, translate: true
|
|
||||||
};
|
|
||||||
App.Ticket.configure_attributes.push( attribute3 )
|
|
||||||
var attribute4 = {
|
|
||||||
name: 'link2', display: 'link 1', linktemplate: 'http://zammad.com', tag: 'input', null: true
|
|
||||||
};
|
|
||||||
App.Ticket.configure_attributes.push( attribute4 )
|
|
||||||
|
|
||||||
var ticket = new App.Ticket()
|
|
||||||
ticket.load({
|
|
||||||
id: 1000,
|
|
||||||
title: 'some title <>&',
|
|
||||||
state_id: 2,
|
|
||||||
updated_at: '2014-11-07T23:43:08.000Z',
|
|
||||||
date: '2015-02-07',
|
|
||||||
textarea: "some new\nline",
|
|
||||||
link1: 'closed',
|
|
||||||
link2: 'closed',
|
|
||||||
})
|
|
||||||
|
|
||||||
App.i18n.set('en-us')
|
|
||||||
equal( App.viewPrint( ticket, 'id' ), 1000)
|
|
||||||
equal( App.viewPrint( ticket, 'title' ), 'some title <>&')
|
|
||||||
equal( App.viewPrint( ticket, 'state' ), 'open')
|
|
||||||
equal( App.viewPrint( ticket, 'state_id' ), 'open')
|
|
||||||
equal( App.viewPrint( ticket, 'not_existing' ), '-')
|
|
||||||
equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="11/07/2014 23:43">11/07/2014</time>')
|
|
||||||
equal( App.viewPrint( ticket, 'date' ), '02/07/2015')
|
|
||||||
equal( App.viewPrint( ticket, 'textarea' ), '<div>some new</div><div>line</div>')
|
|
||||||
equal( App.viewPrint( ticket, 'link1' ), '<a href="http://zammad.com" target="blank">closed</a>')
|
|
||||||
equal( App.viewPrint( ticket, 'link2' ), '<a href="http://zammad.com" target="blank">closed</a>')
|
|
||||||
|
|
||||||
let stub = sinon.stub(App.Config, 'get')
|
|
||||||
stub.withArgs('timezone_default').returns('Example/Timezone')
|
|
||||||
let attr = App.Ticket.configure_attributes.find(e => { return e.name == 'updated_at' })
|
|
||||||
attr.include_timezone = true
|
|
||||||
|
|
||||||
equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="11/07/2014 23:43 Example/Timezone" timezone="Example/Timezone">11/07/2014</time>')
|
|
||||||
|
|
||||||
attr.include_timezone = false
|
|
||||||
stub.restore()
|
|
||||||
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
equal( App.viewPrint( ticket, 'id' ), 1000)
|
|
||||||
equal( App.viewPrint( ticket, 'title' ), 'some title <>&')
|
|
||||||
equal( App.viewPrint( ticket, 'state' ), 'offen')
|
|
||||||
equal( App.viewPrint( ticket, 'state_id' ), 'offen')
|
|
||||||
equal( App.viewPrint( ticket, 'not_existing' ), '-')
|
|
||||||
equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="07.11.2014 23:43">07.11.2014</time>')
|
|
||||||
equal( App.viewPrint( ticket, 'date' ), '07.02.2015')
|
|
||||||
equal( App.viewPrint( ticket, 'textarea' ), '<div>some new</div><div>line</div>')
|
|
||||||
equal( App.viewPrint( ticket, 'link1' ), '<a href="http://zammad.com" target="blank">geschlossen</a>')
|
|
||||||
equal( App.viewPrint( ticket, 'link2' ), '<a href="http://zammad.com" target="blank">closed</a>')
|
|
||||||
|
|
||||||
|
|
||||||
App.i18n.set('en-us')
|
|
||||||
ticket.state_id = 3
|
|
||||||
equal( App.viewPrint( ticket, 'state' ), 'closed <>&')
|
|
||||||
equal( App.viewPrint( ticket, 'state_id' ), 'closed <>&')
|
|
||||||
|
|
||||||
App.i18n.set('de')
|
|
||||||
equal( App.viewPrint( ticket, 'state' ), 'closed <>&')
|
|
||||||
equal( App.viewPrint( ticket, 'state_id' ), 'closed <>&')
|
|
||||||
|
|
||||||
// normal string
|
|
||||||
data = {
|
|
||||||
a: 1,
|
|
||||||
b: 'abc',
|
|
||||||
c: {
|
|
||||||
displayName: function() { return "my displayName <>&" }
|
|
||||||
},
|
|
||||||
}
|
|
||||||
equal( App.viewPrint( data, 'a' ), 1)
|
|
||||||
equal( App.viewPrint( data, 'b' ), 'abc')
|
|
||||||
equal( App.viewPrint( data, 'c' ), 'my displayName <>&')
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,16 +1,25 @@
|
||||||
/*!
|
/*!
|
||||||
* QUnit 1.21.0
|
* QUnit 2.17.2
|
||||||
* https://qunitjs.com/
|
* https://qunitjs.com/
|
||||||
*
|
*
|
||||||
* Copyright jQuery Foundation and other contributors
|
* Copyright OpenJS Foundation and other contributors
|
||||||
* Released under the MIT license
|
* Released under the MIT license
|
||||||
* https://jquery.org/license
|
* https://jquery.org/license
|
||||||
*
|
|
||||||
* Date: 2016-02-01T13:07Z
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Font Family and Sizes */
|
/** Font Family and Sizes */
|
||||||
|
|
||||||
|
/* Style our buttons in a simple way, uninfluenced by the styles
|
||||||
|
the tested app might load. Don't affect buttons in #qunit-fixture!
|
||||||
|
https://github.com/qunitjs/qunit/pull/1395
|
||||||
|
https://github.com/qunitjs/qunit/issues/1437 */
|
||||||
|
#qunit-testrunner-toolbar button,
|
||||||
|
#qunit-testresult button {
|
||||||
|
font-size: initial;
|
||||||
|
border: initial;
|
||||||
|
background-color: buttonface;
|
||||||
|
}
|
||||||
|
|
||||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult {
|
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult {
|
||||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
||||||
}
|
}
|
||||||
|
@ -27,12 +36,39 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Header */
|
/** Fixed headers with scrollable tests */
|
||||||
|
|
||||||
|
@supports (display: flex) or (display: -webkit-box) {
|
||||||
|
@media (min-height: 500px) {
|
||||||
|
#qunit {
|
||||||
|
position: fixed;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
top: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
padding: 8px;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests {
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-banner {
|
||||||
|
flex: 5px 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Header (excluding toolbar) */
|
||||||
|
|
||||||
#qunit-header {
|
#qunit-header {
|
||||||
padding: 0.5em 0 0.5em 1em;
|
padding: 0.5em 0 0.5em 1em;
|
||||||
|
|
||||||
color: #8699A4;
|
color: #C2CCD1;
|
||||||
background-color: #0D3349;
|
background-color: #0D3349;
|
||||||
|
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
|
@ -44,7 +80,7 @@
|
||||||
|
|
||||||
#qunit-header a {
|
#qunit-header a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #C2CCD1;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-header a:hover,
|
#qunit-header a:hover,
|
||||||
|
@ -52,51 +88,165 @@
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-testrunner-toolbar label {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0 0.5em 0 0.1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#qunit-banner {
|
#qunit-banner {
|
||||||
height: 5px;
|
height: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#qunit-filteredTest {
|
||||||
|
padding: 0.5em 1em 0.5em 1em;
|
||||||
|
color: #366097;
|
||||||
|
background-color: #F4FF77;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-userAgent {
|
||||||
|
padding: 0.5em 1em 0.5em 1em;
|
||||||
|
color: #FFF;
|
||||||
|
background-color: #2B81AF;
|
||||||
|
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Toolbar */
|
||||||
|
|
||||||
#qunit-testrunner-toolbar {
|
#qunit-testrunner-toolbar {
|
||||||
padding: 0.5em 1em 0.5em 1em;
|
padding: 0.5em 1em 0.5em 1em;
|
||||||
color: #5E740B;
|
color: #5E740B;
|
||||||
background-color: #EEE;
|
background-color: #EEE;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-filteredTest {
|
#qunit-testrunner-toolbar .clearfix {
|
||||||
padding: 0.5em 1em 0.5em 1em;
|
height: 0;
|
||||||
background-color: #F4FF77;
|
clear: both;
|
||||||
color: #366097;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-userAgent {
|
#qunit-testrunner-toolbar label {
|
||||||
padding: 0.5em 1em 0.5em 1em;
|
|
||||||
background-color: #2B81AF;
|
|
||||||
color: #FFF;
|
|
||||||
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#qunit-modulefilter-container {
|
|
||||||
float: right;
|
|
||||||
padding: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.qunit-url-config {
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0.1em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.qunit-filter {
|
#qunit-testrunner-toolbar input[type=checkbox],
|
||||||
display: block;
|
#qunit-testrunner-toolbar input[type=radio] {
|
||||||
|
margin: 3px;
|
||||||
|
vertical-align: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-testrunner-toolbar input[type=text] {
|
||||||
|
box-sizing: border-box;
|
||||||
|
height: 1.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-toolbar-filters {
|
||||||
float: right;
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.qunit-url-config,
|
||||||
|
.qunit-filter,
|
||||||
|
#qunit-modulefilter {
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 2.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.qunit-filter,
|
||||||
|
#qunit-modulefilter {
|
||||||
|
position: relative;
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.qunit-url-config label {
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-search {
|
||||||
|
box-sizing: border-box;
|
||||||
|
min-width: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-search-container:after {
|
||||||
|
position: absolute;
|
||||||
|
right: 0.3em;
|
||||||
|
content: "\25bc";
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown {
|
||||||
|
/* align with #qunit-modulefilter-search */
|
||||||
|
box-sizing: border-box;
|
||||||
|
min-width: 400px;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: 0.8em;
|
||||||
|
|
||||||
|
border: 1px solid #D3D3D3;
|
||||||
|
border-top: none;
|
||||||
|
border-radius: 0 0 .25em .25em;
|
||||||
|
color: #0D3349;
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
z-index: 99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown a {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown .clickable.checked {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #0D3349;
|
||||||
|
background-color: #E2F0F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown .clickable:hover {
|
||||||
|
color: #FFF;
|
||||||
|
background-color: #0D3349;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-actions {
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
/* align with #qunit-modulefilter-dropdown-list */
|
||||||
|
font: smaller/1.5em sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown #qunit-modulefilter-actions > * {
|
||||||
|
box-sizing: border-box;
|
||||||
|
max-height: 2.8em;
|
||||||
|
display: block;
|
||||||
|
padding: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown #qunit-modulefilter-actions > button {
|
||||||
|
float: right;
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown #qunit-modulefilter-actions > :last-child {
|
||||||
|
/* insert padding to align with checkbox margins */
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown-list {
|
||||||
|
max-height: 200px;
|
||||||
|
overflow-y: auto;
|
||||||
|
margin: 0;
|
||||||
|
border-top: 2px groove threedhighlight;
|
||||||
|
padding: 0.4em 0 0;
|
||||||
|
font: smaller/1.5em sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown-list li {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-modulefilter-dropdown-list .clickable {
|
||||||
|
display: block;
|
||||||
|
padding-left: 0.15em;
|
||||||
|
padding-right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tests: Pass/Fail */
|
/** Tests: Pass/Fail */
|
||||||
|
|
||||||
#qunit-tests {
|
#qunit-tests {
|
||||||
|
@ -116,7 +266,8 @@
|
||||||
#qunit-tests li.running,
|
#qunit-tests li.running,
|
||||||
#qunit-tests li.pass,
|
#qunit-tests li.pass,
|
||||||
#qunit-tests li.fail,
|
#qunit-tests li.fail,
|
||||||
#qunit-tests li.skipped {
|
#qunit-tests li.skipped,
|
||||||
|
#qunit-tests li.aborted {
|
||||||
display: list-item;
|
display: list-item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +276,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-tests.hidepass li.running,
|
#qunit-tests.hidepass li.running,
|
||||||
#qunit-tests.hidepass li.pass {
|
#qunit-tests.hidepass li.pass:not(.todo) {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 0;
|
width: 0;
|
||||||
|
@ -145,17 +296,12 @@
|
||||||
|
|
||||||
#qunit-tests li a {
|
#qunit-tests li a {
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
color: #C2CCD1;
|
color: inherit;
|
||||||
text-decoration: none;
|
text-decoration: underline;
|
||||||
}
|
|
||||||
|
|
||||||
#qunit-tests li p a {
|
|
||||||
padding: 0.25em;
|
|
||||||
color: #6B6464;
|
|
||||||
}
|
}
|
||||||
#qunit-tests li a:hover,
|
#qunit-tests li a:hover,
|
||||||
#qunit-tests li a:focus {
|
#qunit-tests li a:focus {
|
||||||
color: #000;
|
color: #0D3349;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-tests li .runtime {
|
#qunit-tests li .runtime {
|
||||||
|
@ -202,20 +348,20 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-tests del {
|
#qunit-tests del {
|
||||||
background-color: #E0F2BE;
|
|
||||||
color: #374E0C;
|
color: #374E0C;
|
||||||
|
background-color: #E0F2BE;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-tests ins {
|
#qunit-tests ins {
|
||||||
background-color: #FFCACA;
|
|
||||||
color: #500;
|
color: #500;
|
||||||
|
background-color: #FFCACA;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** Test Counts */
|
/*** Test Counts */
|
||||||
|
|
||||||
#qunit-tests b.counts { color: #000; }
|
#qunit-tests b.counts { color: #0D3349; }
|
||||||
#qunit-tests b.passed { color: #5E740B; }
|
#qunit-tests b.passed { color: #5E740B; }
|
||||||
#qunit-tests b.failed { color: #710909; }
|
#qunit-tests b.failed { color: #710909; }
|
||||||
|
|
||||||
|
@ -228,15 +374,22 @@
|
||||||
|
|
||||||
/*** Passing Styles */
|
/*** Passing Styles */
|
||||||
|
|
||||||
|
|
||||||
|
#qunit-tests .pass {
|
||||||
|
color: #2F68DA;
|
||||||
|
background-color: #E2F0F7;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-tests .pass .test-name {
|
||||||
|
color: #366097;
|
||||||
|
}
|
||||||
|
|
||||||
#qunit-tests li li.pass {
|
#qunit-tests li li.pass {
|
||||||
color: #3C510C;
|
color: #3C510C;
|
||||||
background-color: #FFF;
|
background-color: #FFF;
|
||||||
border-left: 10px solid #C6E746;
|
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-actual,
|
||||||
#qunit-tests .pass .test-expected { color: #999; }
|
#qunit-tests .pass .test-expected { color: #999; }
|
||||||
|
|
||||||
|
@ -244,6 +397,11 @@
|
||||||
|
|
||||||
/*** Failing Styles */
|
/*** Failing Styles */
|
||||||
|
|
||||||
|
#qunit-tests .fail {
|
||||||
|
color: #000;
|
||||||
|
background-color: #EE5757;
|
||||||
|
}
|
||||||
|
|
||||||
#qunit-tests li li.fail {
|
#qunit-tests li li.fail {
|
||||||
color: #710909;
|
color: #710909;
|
||||||
background-color: #FFF;
|
background-color: #FFF;
|
||||||
|
@ -255,21 +413,21 @@
|
||||||
border-radius: 0 0 5px 5px;
|
border-radius: 0 0 5px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-tests .fail { color: #000; background-color: #EE5757; }
|
|
||||||
#qunit-tests .fail .test-name,
|
|
||||||
#qunit-tests .fail .module-name { color: #000; }
|
|
||||||
|
|
||||||
#qunit-tests .fail .test-actual { color: #EE5757; }
|
#qunit-tests .fail .test-actual { color: #EE5757; }
|
||||||
#qunit-tests .fail .test-expected { color: #008000; }
|
#qunit-tests .fail .test-expected { color: #008000; }
|
||||||
|
|
||||||
#qunit-banner.qunit-fail { background-color: #EE5757; }
|
#qunit-banner.qunit-fail { background-color: #EE5757; }
|
||||||
|
|
||||||
|
|
||||||
|
/*** Aborted tests */
|
||||||
|
#qunit-tests .aborted { color: #000; background-color: orange; }
|
||||||
/*** Skipped tests */
|
/*** Skipped tests */
|
||||||
|
|
||||||
#qunit-tests .skipped {
|
#qunit-tests .skipped {
|
||||||
background-color: #EBECE9;
|
background-color: #EBECE9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#qunit-tests .qunit-todo-label,
|
||||||
#qunit-tests .qunit-skipped-label {
|
#qunit-tests .qunit-skipped-label {
|
||||||
background-color: #F4FF77;
|
background-color: #F4FF77;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -280,19 +438,38 @@
|
||||||
margin: -0.4em 0.4em -0.4em 0;
|
margin: -0.4em 0.4em -0.4em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#qunit-tests .qunit-todo-label {
|
||||||
|
background-color: #EEE;
|
||||||
|
}
|
||||||
|
|
||||||
/** Result */
|
/** Result */
|
||||||
|
|
||||||
#qunit-testresult {
|
#qunit-testresult {
|
||||||
padding: 0.5em 1em 0.5em 1em;
|
color: #366097;
|
||||||
|
background-color: #E2F0F7;
|
||||||
color: #2B81AF;
|
|
||||||
background-color: #D2E0E6;
|
|
||||||
|
|
||||||
border-bottom: 1px solid #FFF;
|
border-bottom: 1px solid #FFF;
|
||||||
}
|
}
|
||||||
|
#qunit-testresult a {
|
||||||
|
color: #2F68DA;
|
||||||
|
}
|
||||||
|
#qunit-testresult .clearfix {
|
||||||
|
height: 0;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
#qunit-testresult .module-name {
|
#qunit-testresult .module-name {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
#qunit-testresult-display {
|
||||||
|
padding: 0.5em 1em 0.5em 1em;
|
||||||
|
width: 85%;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
#qunit-testresult-controls {
|
||||||
|
padding: 0.5em 1em 0.5em 1em;
|
||||||
|
width: 10%;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
|
||||||
/** Fixture */
|
/** Fixture */
|
||||||
|
|
7392
public/assets/tests/qunit-2.17.2.js
Normal file
7392
public/assets/tests/qunit-2.17.2.js
Normal file
File diff suppressed because it is too large
Load diff
21
public/assets/tests/qunit/color_object.js
Normal file
21
public/assets/tests/qunit/color_object.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
QUnit.test('test color object', assert => {
|
||||||
|
let hex = new App.ColorObject('#09f609')
|
||||||
|
let hsl = new App.ColorObject([0.5, 0.2, 0.3])
|
||||||
|
|
||||||
|
assert.deepEqual(hex.asHslArray(), [1/3, 0.9294117647058824, 0.5], 'HEX converted to HSL components')
|
||||||
|
assert.deepEqual(hsl.asHslArray(), [0.5, 0.2, 0.3], 'HSL components returned as original input')
|
||||||
|
assert.equal(hex.asString(), '#09f609', 'HEX represented as original input')
|
||||||
|
assert.equal(hsl.asString(), 'hsl(180,20%,30%)', 'HSL components represented as HSL string')
|
||||||
|
|
||||||
|
hex.updateWithString('#fff')
|
||||||
|
assert.equal(hex.asString(), '#fff', 'color updated')
|
||||||
|
|
||||||
|
hsl.updateWithHslComponent(0.25, 1)
|
||||||
|
assert.deepEqual(hsl.asHslArray(), [0.5, 0.25, 0.3], 'given HSL component updated')
|
||||||
|
|
||||||
|
assert.deepEqual(Array.from(App.ColorObject.anyToRgb('#ff0000')), [255, 0, 0, 255], 'any to RGB')
|
||||||
|
assert.deepEqual(App.ColorObject.anyToHslArray('#ff0000'), [0,1,0.5], 'any to HSL components')
|
||||||
|
assert.equal(App.ColorObject.anyToHslString('#ff0000'), 'hsl(0,100%,50%)', 'any to HSL string')
|
||||||
|
assert.deepEqual(App.ColorObject.rgbToHslArray([255, 0, 0]), [0,1,0.5], 'RGB to HSL components')
|
||||||
|
assert.equal(App.ColorObject.hslArrayToHslString([0.5, 0.25, 0.3]), 'hsl(180,25%,30%)', 'HSL components to HSL string')
|
||||||
|
})
|
|
@ -1,4 +1,5 @@
|
||||||
test( "ajax get 200", function(assert) {
|
QUnit.test( "ajax get 200", assert => {
|
||||||
|
App.Config.set('api_path', '/api/v1')
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
|
@ -9,16 +10,16 @@ test( "ajax get 200", function(assert) {
|
||||||
error: reject
|
error: reject
|
||||||
});
|
});
|
||||||
}).then( function(data) {
|
}).then( function(data) {
|
||||||
ok( true, "File found!")
|
assert.ok( true, "File found!")
|
||||||
equal(data.success, true, "content parsable and ok!")
|
assert.equal(data.success, true, "content parsable and assert.ok!")
|
||||||
equal(data.success2, undefined, "content parsable and ok!")
|
assert.equal(data.success2, undefined, "content parsable and assert.ok!")
|
||||||
}, function(data) {
|
}, function(data) {
|
||||||
ok( false, "Failed!")
|
assert.ok( false, "Failed!")
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ajax - queue - ajax get 200 1/2", function(assert) {
|
QUnit.test( "ajax - queue - ajax get 200 1/2", assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
|
@ -30,17 +31,17 @@ test( "ajax - queue - ajax get 200 1/2", function(assert) {
|
||||||
error: reject
|
error: reject
|
||||||
});
|
});
|
||||||
}).then( function(data) {
|
}).then( function(data) {
|
||||||
ok( !window.testAjax, 'ajax - queue - check queue')
|
assert.ok( !window.testAjax, 'ajax - queue - check queue')
|
||||||
window.testAjax = true;
|
window.testAjax = true;
|
||||||
equal(data.success, true, "ajax - queue - content parsable and ok!")
|
assert.equal(data.success, true, "ajax - queue - content parsable and assert.ok!")
|
||||||
equal(data.success2, undefined, "ajax - queue - content parsable and ok!")
|
assert.equal(data.success2, undefined, "ajax - queue - content parsable and assert.ok!")
|
||||||
}, function(data) {
|
}, function(data) {
|
||||||
ok( false, "Failed!")
|
assert.ok( false, "Failed!")
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ajax - queue - ajax get 200 2/2", function(assert) {
|
QUnit.test( "ajax - queue - ajax get 200 2/2", assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
|
@ -54,19 +55,19 @@ test( "ajax - queue - ajax get 200 2/2", function(assert) {
|
||||||
}).then( function(data) {
|
}).then( function(data) {
|
||||||
|
|
||||||
// check queue
|
// check queue
|
||||||
ok( window.testAjax, 'ajax - queue - check queue')
|
assert.ok( window.testAjax, 'ajax - queue - check queue')
|
||||||
window.testAjax = undefined;
|
window.testAjax = undefined;
|
||||||
|
|
||||||
equal(data.success, true, "content parsable and ok!")
|
assert.equal(data.success, true, "content parsable and assert.ok!")
|
||||||
equal(data.success2, undefined, "content parsable and ok!")
|
assert.equal(data.success2, undefined, "content parsable and assert.ok!")
|
||||||
}, function(data) {
|
}, function(data) {
|
||||||
ok( false, "Failed!")
|
assert.ok( false, "Failed!")
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ajax - parallel - ajax get 200", function(assert) {
|
QUnit.test( "ajax - parallel - ajax get 200", assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(2)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Ajax.request({
|
App.Ajax.request({
|
||||||
|
@ -86,28 +87,29 @@ test( "ajax - parallel - ajax get 200", function(assert) {
|
||||||
}).then( function(data) {
|
}).then( function(data) {
|
||||||
|
|
||||||
// check queue
|
// check queue
|
||||||
ok( !window.testAjaxQ, 'ajax - parallel - check queue')
|
assert.ok( !window.testAjaxQ, 'ajax - parallel - check queue')
|
||||||
window.testAjaxQ = true;
|
window.testAjaxQ = true;
|
||||||
|
|
||||||
equal(data.success, true, "content parsable and ok!")
|
assert.equal(data.success, true, "content parsable and assert.ok!")
|
||||||
equal(data.success2, undefined, "content parsable and ok!")
|
assert.equal(data.success2, undefined, "content parsable and assert.ok!")
|
||||||
}, function(data) {
|
}, function(data) {
|
||||||
ok( false, "Failed!")
|
assert.ok( false, "Failed!")
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
}).then( function(data) {
|
}).then( function(data) {
|
||||||
|
|
||||||
// check queue
|
// check queue
|
||||||
ok( window.testAjaxQ, 'ajax - parallel - check queue')
|
assert.ok( window.testAjaxQ, 'ajax - parallel - check queue')
|
||||||
window.testAjaxQ = undefined;
|
window.testAjaxQ = undefined;
|
||||||
equal(data.success, true, "ajax - parallel - content parsable and ok!")
|
assert.equal(data.success, true, "ajax - parallel - content parsable and assert.ok!")
|
||||||
equal(data.success2, undefined, "ajax - parallel - content parsable and ok!")
|
assert.equal(data.success2, undefined, "ajax - parallel - content parsable and assert.ok!")
|
||||||
|
done()
|
||||||
}, function(data) {
|
}, function(data) {
|
||||||
ok( false, "Failed!")
|
assert.ok( false, "Failed!")
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
test('delay - test', function(assert) {
|
QUnit.test('delay - test', assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
window.testDelay1 = false
|
window.testDelay1 = false
|
||||||
|
@ -117,24 +119,24 @@ test('delay - test', function(assert) {
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 2000, 'delay-test1', 'level');
|
App.Delay.set(resolve, 2000, 'delay-test1', 'level');
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(!window.testDelay1, 'delay - 1/2')
|
assert.ok(!window.testDelay1, 'delay - 1/2')
|
||||||
window.testDelay1 = 1;
|
window.testDelay1 = 1;
|
||||||
})
|
})
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 3000, 'delay-test1-verify', 'level');
|
App.Delay.set(resolve, 3000, 'delay-test1-verify', 'level');
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(window.testDelay1, 'delay - 2/2')
|
assert.ok(window.testDelay1, 'delay - 2/2')
|
||||||
window.testDelay1 = false;
|
window.testDelay1 = false;
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(false, 'delay - 1/2 - FAILED - should not be executed, will be reset by next set()')
|
assert.ok(false, 'delay - 1/2 - FAILED - should not be executed, will be reset by next set()')
|
||||||
window.testDelay1 = true;
|
window.testDelay1 = true;
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
test('delay - test 2', function(assert) {
|
QUnit.test('delay - test 2', assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
|
@ -143,48 +145,48 @@ test('delay - test 2', function(assert) {
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 1000);
|
App.Delay.set(resolve, 1000);
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(!window.testDelay2, 'delay - test 2 - 1/3')
|
assert.ok(!window.testDelay2, 'delay - test 2 - 1/3')
|
||||||
})
|
})
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 3000);
|
App.Delay.set(resolve, 3000);
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(window.testDelay2, 'delay - test 2 - 3/3')
|
assert.ok(window.testDelay2, 'delay - test 2 - 3/3')
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(!window.testDelay2, 'delay - test 2 - 2/3')
|
assert.ok(!window.testDelay2, 'delay - test 2 - 2/3')
|
||||||
window.testDelay2 = 1;
|
window.testDelay2 = 1;
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
test('delay - test 3', function(assert) {
|
QUnit.test('delay - test 3', assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 1000, 'delay3');
|
App.Delay.set(resolve, 1000, 'delay3');
|
||||||
App.Delay.clear('delay3')
|
App.Delay.clear('delay3')
|
||||||
ok(true, 'delay - test 3 - 1/1')
|
assert.ok(true, 'delay - test 3 - 1/1')
|
||||||
done()
|
done()
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(false, 'delay - test 3 - 1/1 - FAILED')
|
assert.ok(false, 'delay - test 3 - 1/1 - FAILED')
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
test('delay - test 4', function(assert) {
|
QUnit.test('delay - test 4', assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 1000, undefined, 'Page');
|
App.Delay.set(resolve, 1000, undefined, 'Page');
|
||||||
App.Delay.clearLevel('Page')
|
App.Delay.clearLevel('Page')
|
||||||
ok(true, 'delay - test 4 - 1/1')
|
assert.ok(true, 'delay - test 4 - 1/1')
|
||||||
done()
|
done()
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
ok(false, 'delay - test 4 - 1/1 - FAILED')
|
assert.ok(false, 'delay - test 4 - 1/1 - FAILED')
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
test('interval - test 1', function(assert) {
|
QUnit.test('interval - test 1', assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
window.testInterval1 = 1
|
window.testInterval1 = 1
|
||||||
|
@ -201,17 +203,17 @@ test('interval - test 1', function(assert) {
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 2000);
|
App.Delay.set(resolve, 2000);
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
equal(window.testInterval1, window.testInterval1Backup, 'interval - did not change after clear interval')
|
assert.equal(window.testInterval1, window.testInterval1Backup, 'interval - did not change after clear interval')
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
notEqual(window.testInterval1, 1, 'interval - interval moved up')
|
assert.notEqual(window.testInterval1, 1, 'interval - interval moved up')
|
||||||
App.Interval.clear('interval-test1')
|
App.Interval.clear('interval-test1')
|
||||||
window.testInterval1Backup = window.testInterval1;
|
window.testInterval1Backup = window.testInterval1;
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
test('interval - test 2', function(assert) {
|
QUnit.test('interval - test 2', assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
window.testInterval1 = 1
|
window.testInterval1 = 1
|
||||||
|
@ -229,58 +231,58 @@ test('interval - test 2', function(assert) {
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
App.Delay.set(resolve, 2000);
|
App.Delay.set(resolve, 2000);
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
equal(window.testInterval1, window.testInterval1Backup, 'interval - did not change after clear interval')
|
assert.equal(window.testInterval1, window.testInterval1Backup, 'interval - did not change after clear interval')
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
}).then( function() {
|
}).then( function() {
|
||||||
notEqual(window.testInterval1, 1, 'interval - interval moved up')
|
assert.notEqual(window.testInterval1, 1, 'interval - interval moved up')
|
||||||
App.Interval.clearLevel('someLevel')
|
App.Interval.clearLevel('someLevel')
|
||||||
window.testInterval1Backup = window.testInterval1;
|
window.testInterval1Backup = window.testInterval1;
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// events
|
// events
|
||||||
test('events simple', function() {
|
QUnit.test('events simple', assert => {
|
||||||
|
|
||||||
// single bind
|
// single bind
|
||||||
App.Event.bind('test1', function(data) {
|
App.Event.bind('test1', function(data) {
|
||||||
ok(true, 'event received - single bind')
|
assert.ok(true, 'event received - single bind')
|
||||||
equal(data.success, true, 'event received - data ok - single bind')
|
assert.equal(data.success, true, 'event received - data assert.ok - single bind')
|
||||||
});
|
});
|
||||||
App.Event.bind('test2', function(data) {
|
App.Event.bind('test2', function(data) {
|
||||||
ok(false, 'should not be triggered - single bind')
|
assert.ok(false, 'should not be triggered - single bind')
|
||||||
});
|
});
|
||||||
App.Event.trigger('test1', { success: true })
|
App.Event.trigger('test1', { success: true })
|
||||||
|
|
||||||
App.Event.unbind('test1')
|
App.Event.unbind('test1')
|
||||||
App.Event.bind('test1', function(data) {
|
App.Event.bind('test1', function(data) {
|
||||||
ok(false, 'should not be triggered - single bind')
|
assert.ok(false, 'should not be triggered - single bind')
|
||||||
});
|
});
|
||||||
App.Event.unbind('test1')
|
App.Event.unbind('test1')
|
||||||
App.Event.trigger('test1', { success: true })
|
App.Event.trigger('test1', { success: true })
|
||||||
|
|
||||||
// multi bind
|
// multi bind
|
||||||
App.Event.bind('test1-1 test1-2', function(data) {
|
App.Event.bind('test1-1 test1-2', function(data) {
|
||||||
ok(true, 'event received - multi bind')
|
assert.ok(true, 'event received - multi bind')
|
||||||
equal(data.success, true, 'event received - data ok - multi bind')
|
assert.equal(data.success, true, 'event received - data assert.ok - multi bind')
|
||||||
});
|
});
|
||||||
App.Event.bind('test1-3', function(data) {
|
App.Event.bind('test1-3', function(data) {
|
||||||
ok(false, 'should not be triggered - multi bind')
|
assert.ok(false, 'should not be triggered - multi bind')
|
||||||
});
|
});
|
||||||
App.Event.trigger('test1-2', { success: true })
|
App.Event.trigger('test1-2', { success: true })
|
||||||
|
|
||||||
App.Event.unbind('test1-1')
|
App.Event.unbind('test1-1')
|
||||||
App.Event.bind('test1-1', function(data) {
|
App.Event.bind('test1-1', function(data) {
|
||||||
ok(false, 'should not be triggered - multi bind')
|
assert.ok(false, 'should not be triggered - multi bind')
|
||||||
});
|
});
|
||||||
App.Event.trigger('test1-2', { success: true })
|
App.Event.trigger('test1-2', { success: true })
|
||||||
});
|
});
|
||||||
|
|
||||||
test('events level', function() {
|
QUnit.test('events level', assert => {
|
||||||
|
|
||||||
// bind with level
|
// bind with level
|
||||||
App.Event.bind('test3', function(data) {
|
App.Event.bind('test3', function(data) {
|
||||||
ok(false, 'should not be triggered!')
|
assert.ok(false, 'should not be triggered!')
|
||||||
}, 'test-level')
|
}, 'test-level')
|
||||||
|
|
||||||
// unbind with level
|
// unbind with level
|
||||||
|
@ -288,15 +290,15 @@ test('events level', function() {
|
||||||
|
|
||||||
// bind with level
|
// bind with level
|
||||||
App.Event.bind('test3', function(data) {
|
App.Event.bind('test3', function(data) {
|
||||||
ok(true, 'event received')
|
assert.ok(true, 'event received')
|
||||||
equal(data.success, true, 'event received - data ok - level bind')
|
assert.equal(data.success, true, 'event received - data assert.ok - level bind')
|
||||||
}, 'test-level')
|
}, 'test-level')
|
||||||
App.Event.trigger('test3', { success: true})
|
App.Event.trigger('test3', { success: true})
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// session store
|
// session store
|
||||||
test('session store', function() {
|
QUnit.test('session store', assert => {
|
||||||
|
|
||||||
var tests = [
|
var tests = [
|
||||||
'some 123äöüßadajsdaiosjdiaoidj',
|
'some 123äöüßadajsdaiosjdiaoidj',
|
||||||
|
@ -309,14 +311,14 @@ test('session store', function() {
|
||||||
_.each(tests, function(test) {
|
_.each(tests, function(test) {
|
||||||
App.SessionStorage.set('test1', test)
|
App.SessionStorage.set('test1', test)
|
||||||
var item = App.SessionStorage.get('test1')
|
var item = App.SessionStorage.get('test1')
|
||||||
deepEqual(test, item, 'write/get - compare stored and actual data')
|
assert.deepEqual(test, item, 'write/get - compare stored and actual data')
|
||||||
});
|
});
|
||||||
|
|
||||||
// undefined/get
|
// undefined/get
|
||||||
App.SessionStorage.clear()
|
App.SessionStorage.clear()
|
||||||
_.each(tests, function(test) {
|
_.each(tests, function(test) {
|
||||||
var item = App.SessionStorage.get('test1')
|
var item = App.SessionStorage.get('test1')
|
||||||
deepEqual(undefined, item, 'undefined/get - compare not existing data and actual data')
|
assert.deepEqual(undefined, item, 'undefined/get - compare not existing data and actual data')
|
||||||
});
|
});
|
||||||
|
|
||||||
// write/get/delete
|
// write/get/delete
|
||||||
|
@ -333,16 +335,16 @@ test('session store', function() {
|
||||||
|
|
||||||
_.each(tests, function(test) {
|
_.each(tests, function(test) {
|
||||||
var item = App.SessionStorage.get(test.key)
|
var item = App.SessionStorage.get(test.key)
|
||||||
deepEqual(test.value, item, 'write/get/delete - compare stored and actual data')
|
assert.deepEqual(test.value, item, 'write/get/delete - compare stored and actual data')
|
||||||
App.SessionStorage.delete( test.key)
|
App.SessionStorage.delete( test.key)
|
||||||
item = App.SessionStorage.get(test.key)
|
item = App.SessionStorage.get(test.key)
|
||||||
deepEqual(undefined, item, 'write/get/delete - compare deleted data')
|
assert.deepEqual(undefined, item, 'write/get/delete - compare deleted data')
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// config
|
// config
|
||||||
test('config', function() {
|
QUnit.test('config', assert => {
|
||||||
|
|
||||||
// simple
|
// simple
|
||||||
var tests = [
|
var tests = [
|
||||||
|
@ -357,7 +359,7 @@ test('config', function() {
|
||||||
|
|
||||||
_.each(tests, function(test) {
|
_.each(tests, function(test) {
|
||||||
var item = App.Config.get(test.key )
|
var item = App.Config.get(test.key )
|
||||||
deepEqual(item, test.value, 'set/get tests')
|
assert.deepEqual(item, test.value, 'set/get tests')
|
||||||
});
|
});
|
||||||
|
|
||||||
// group
|
// group
|
||||||
|
@ -374,18 +376,18 @@ test('config', function() {
|
||||||
|
|
||||||
// verify whole group
|
// verify whole group
|
||||||
var item = App.Config.get('group1')
|
var item = App.Config.get('group1')
|
||||||
deepEqual(item, group, 'group - verify group hash')
|
assert.deepEqual(item, group, 'group - verify group hash')
|
||||||
|
|
||||||
// verify each setting
|
// verify each setting
|
||||||
_.each(test_groups, function(test) {
|
_.each(test_groups, function(test) {
|
||||||
var item = App.Config.get(test.key, 'group1')
|
var item = App.Config.get(test.key, 'group1')
|
||||||
deepEqual(item, test.value, 'group set/get tests')
|
assert.deepEqual(item, test.value, 'group set/get tests')
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// clone
|
// clone
|
||||||
test('clone', function() {
|
QUnit.test('clone', assert => {
|
||||||
|
|
||||||
// simple
|
// simple
|
||||||
var tests = [
|
var tests = [
|
||||||
|
@ -436,7 +438,7 @@ test('clone', function() {
|
||||||
|
|
||||||
_.each(tests, function(test) {
|
_.each(tests, function(test) {
|
||||||
var item = clone( test )
|
var item = clone( test )
|
||||||
deepEqual(item, test, 'clone')
|
assert.deepEqual(item, test, 'clone')
|
||||||
});
|
});
|
||||||
|
|
||||||
// complex test
|
// complex test
|
||||||
|
@ -455,7 +457,7 @@ test('clone', function() {
|
||||||
// modify source later, should not have any result
|
// modify source later, should not have any result
|
||||||
source[0].name = 'some new name'
|
source[0].name = 'some new name'
|
||||||
|
|
||||||
deepEqual(result, reference, 'clone')
|
assert.deepEqual(result, reference, 'clone')
|
||||||
|
|
||||||
// full test
|
// full test
|
||||||
var source = [
|
var source = [
|
||||||
|
@ -474,19 +476,19 @@ test('clone', function() {
|
||||||
source[0].name = 'some new name'
|
source[0].name = 'some new name'
|
||||||
source[2].fn = 'some new name'
|
source[2].fn = 'some new name'
|
||||||
|
|
||||||
deepEqual(result[0], reference[0], 'clone full')
|
assert.deepEqual(result[0], reference[0], 'clone full')
|
||||||
deepEqual(result[1], reference[1], 'clone full')
|
assert.deepEqual(result[1], reference[1], 'clone full')
|
||||||
|
|
||||||
equal(typeof reference[2].fn, 'function')
|
assert.equal(typeof reference[2].fn, 'function')
|
||||||
equal(typeof result[2].fn, 'function')
|
assert.equal(typeof result[2].fn, 'function')
|
||||||
|
|
||||||
equal(reference[2].fn(), 'test')
|
assert.equal(reference[2].fn(), 'test')
|
||||||
equal(result[2].fn(), 'test')
|
assert.equal(result[2].fn(), 'test')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// diff
|
// diff
|
||||||
test('difference', function() {
|
QUnit.test('difference', assert => {
|
||||||
|
|
||||||
// simple
|
// simple
|
||||||
var object1 = {
|
var object1 = {
|
||||||
|
@ -501,7 +503,7 @@ test('difference', function() {
|
||||||
key2: 1235
|
key2: 1235
|
||||||
}
|
}
|
||||||
var item = difference(object1, object2)
|
var item = difference(object1, object2)
|
||||||
deepEqual(item, result)
|
assert.deepEqual(item, result)
|
||||||
|
|
||||||
object1 = {
|
object1 = {
|
||||||
key1: 123,
|
key1: 123,
|
||||||
|
@ -513,7 +515,7 @@ test('difference', function() {
|
||||||
}
|
}
|
||||||
result = {}
|
result = {}
|
||||||
item = difference(object1, object2)
|
item = difference(object1, object2)
|
||||||
deepEqual(item, result)
|
assert.deepEqual(item, result)
|
||||||
|
|
||||||
object1 = {
|
object1 = {
|
||||||
key1: 123,
|
key1: 123,
|
||||||
|
@ -527,7 +529,7 @@ test('difference', function() {
|
||||||
key2: 123
|
key2: 123
|
||||||
}
|
}
|
||||||
item = difference(object1, object2)
|
item = difference(object1, object2)
|
||||||
deepEqual(item, result)
|
assert.deepEqual(item, result)
|
||||||
|
|
||||||
object1 = {
|
object1 = {
|
||||||
key1: 123,
|
key1: 123,
|
||||||
|
@ -538,7 +540,7 @@ test('difference', function() {
|
||||||
}
|
}
|
||||||
result = {}
|
result = {}
|
||||||
item = difference(object1, object2)
|
item = difference(object1, object2)
|
||||||
deepEqual(item, result)
|
assert.deepEqual(item, result)
|
||||||
|
|
||||||
object1 = {
|
object1 = {
|
||||||
key1: 123,
|
key1: 123,
|
||||||
|
@ -549,7 +551,7 @@ test('difference', function() {
|
||||||
}
|
}
|
||||||
result = {}
|
result = {}
|
||||||
item = difference(object1, object2)
|
item = difference(object1, object2)
|
||||||
deepEqual(item, result)
|
assert.deepEqual(item, result)
|
||||||
|
|
||||||
object1 = {
|
object1 = {
|
||||||
customer_id: 1,
|
customer_id: 1,
|
||||||
|
@ -563,7 +565,7 @@ test('difference', function() {
|
||||||
organization_id: null,
|
organization_id: null,
|
||||||
}
|
}
|
||||||
item = difference(object1, object2)
|
item = difference(object1, object2)
|
||||||
deepEqual(item, result)
|
assert.deepEqual(item, result)
|
||||||
|
|
||||||
object1 = {
|
object1 = {
|
||||||
customer_id: 1,
|
customer_id: 1,
|
||||||
|
@ -577,11 +579,11 @@ test('difference', function() {
|
||||||
organization_id: 2,
|
organization_id: 2,
|
||||||
}
|
}
|
||||||
item = difference(object1, object2)
|
item = difference(object1, object2)
|
||||||
deepEqual(item, result)
|
assert.deepEqual(item, result)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('auth - not existing user', function(assert) {
|
QUnit.test('auth - not existing user', assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
|
@ -594,14 +596,15 @@ test('auth - not existing user', function(assert) {
|
||||||
error: reject
|
error: reject
|
||||||
});
|
});
|
||||||
}).then( function(data) {
|
}).then( function(data) {
|
||||||
ok(false, 'ok')
|
assert.ok(false, 'ok')
|
||||||
}, function() {
|
}, function() {
|
||||||
ok(true, 'ok')
|
assert.ok(true, 'ok')
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('auth - existing user', function(assert) {
|
QUnit.test('auth - existing user', assert => {
|
||||||
|
App.Config.set('api_path', '/api/v1')
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
new Promise( (resolve, reject) => {
|
new Promise( (resolve, reject) => {
|
||||||
|
@ -614,11 +617,11 @@ test('auth - existing user', function(assert) {
|
||||||
error: reject
|
error: reject
|
||||||
});
|
});
|
||||||
}).then( function(data) {
|
}).then( function(data) {
|
||||||
ok(true, 'authenticated')
|
assert.ok(true, 'authenticated')
|
||||||
var user = App.Session.get('login')
|
var user = App.Session.get('login')
|
||||||
equal('admin@example.com', user, 'session login')
|
assert.equal('admin@example.com', user, 'session login')
|
||||||
}, function() {
|
}, function() {
|
||||||
ok(false, 'failed')
|
assert.ok(false, 'failed')
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
||||||
})
|
})
|
|
@ -1,16 +1,16 @@
|
||||||
|
|
||||||
// form
|
// form
|
||||||
test("form without @el", function() {
|
QUnit.test("form without @el", assert => {
|
||||||
var form = new App.ControllerForm()
|
var form = new App.ControllerForm()
|
||||||
|
|
||||||
equal($(form.html()).is('div'), true)
|
assert.equal($(form.html()).is('div'), true)
|
||||||
equal($(form.html()).hasClass('alert'), true)
|
assert.equal($(form.html()).hasClass('alert'), true)
|
||||||
equal($(form.html()).hasClass('hide'), true)
|
assert.equal($(form.html()).hasClass('hide'), true)
|
||||||
|
|
||||||
})
|
})
|
||||||
test("form elements check", function() {
|
QUnit.test("form elements check", assert => {
|
||||||
// deepEqual(item, test.value, 'group set/get tests' );
|
// assert.deepEqual(item, test.value, 'group set/get tests' );
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
$('#qunit').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
input2: '123abc',
|
input2: '123abc',
|
||||||
|
@ -58,70 +58,70 @@ test("form elements check", function() {
|
||||||
},
|
},
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
assert.equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
||||||
equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
assert.equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
||||||
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
// assert.equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="input2"]').val(), '123abc', 'check input2 value')
|
assert.equal(el.find('[name="input2"]').val(), '123abc', 'check input2 value')
|
||||||
equal(el.find('[name="input2"]').prop('required'), true, 'check input2 required')
|
assert.equal(el.find('[name="input2"]').prop('required'), true, 'check input2 required')
|
||||||
equal(el.find('[name="input2"]').is(":focus"), false, 'check input2 focus')
|
assert.equal(el.find('[name="input2"]').is(":focus"), false, 'check input2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="password1"]').val(), '', 'check password1 value')
|
assert.equal(el.find('[name="password1"]').val(), '', 'check password1 value')
|
||||||
equal(el.find('[name="password1_confirm"]').val(), '', 'check password1 value')
|
assert.equal(el.find('[name="password1_confirm"]').val(), '', 'check password1 value')
|
||||||
equal(el.find('[name="password1"]').prop('required'), false, 'check password1 required')
|
assert.equal(el.find('[name="password1"]').prop('required'), false, 'check password1 required')
|
||||||
equal(el.find('[name="password1"]').is(":focus"), false, 'check password1 focus')
|
assert.equal(el.find('[name="password1"]').is(":focus"), false, 'check password1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="password2"]').val(), 'pw1234<l>', 'check password2 value')
|
assert.equal(el.find('[name="password2"]').val(), 'pw1234<l>', 'check password2 value')
|
||||||
equal(el.find('[name="password2_confirm"]').val(), 'pw1234<l>', 'check password2 value')
|
assert.equal(el.find('[name="password2_confirm"]').val(), 'pw1234<l>', 'check password2 value')
|
||||||
equal(el.find('[name="password2"]').prop('required'), true, 'check password2 required')
|
assert.equal(el.find('[name="password2"]').prop('required'), true, 'check password2 required')
|
||||||
equal(el.find('[name="password2"]').is(":focus"), false, 'check password2 focus')
|
assert.equal(el.find('[name="password2"]').is(":focus"), false, 'check password2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="textarea1"]').val(), '', 'check textarea1 value')
|
assert.equal(el.find('[name="textarea1"]').val(), '', 'check textarea1 value')
|
||||||
equal(el.find('[name="textarea1"]').prop('required'), false, 'check textarea1 required')
|
assert.equal(el.find('[name="textarea1"]').prop('required'), false, 'check textarea1 required')
|
||||||
equal(el.find('[name="textarea1"]').is(":focus"), false, 'check textarea1 focus')
|
assert.equal(el.find('[name="textarea1"]').is(":focus"), false, 'check textarea1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="textarea2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
assert.equal(el.find('[name="textarea2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
||||||
equal(el.find('[name="textarea2"]').prop('required'), true, 'check textarea2 required')
|
assert.equal(el.find('[name="textarea2"]').prop('required'), true, 'check textarea2 required')
|
||||||
equal(el.find('[name="textarea2"]').is(":focus"), false, 'check textarea2 focus')
|
assert.equal(el.find('[name="textarea2"]').is(":focus"), false, 'check textarea2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
assert.equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
||||||
equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
assert.equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
||||||
equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
assert.equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select2"]').val(), 'true', 'check select2 value')
|
assert.equal(el.find('[name="select2"]').val(), 'true', 'check select2 value')
|
||||||
equal(el.find('[name="select2"]').prop('required'), true, 'check select2 required')
|
assert.equal(el.find('[name="select2"]').prop('required'), true, 'check select2 required')
|
||||||
equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
assert.equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti1"]').val(), 'false', 'check selectmulti1 value')
|
assert.equal(el.find('[name="selectmulti1"]').val(), 'false', 'check selectmulti1 value')
|
||||||
equal(el.find('[name="selectmulti1"]').prop('required'), false, 'check selectmulti1 required')
|
assert.equal(el.find('[name="selectmulti1"]').prop('required'), false, 'check selectmulti1 required')
|
||||||
equal(el.find('[name="selectmulti1"]').is(":focus"), false, 'check selectmulti1 focus')
|
assert.equal(el.find('[name="selectmulti1"]').is(":focus"), false, 'check selectmulti1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
assert.equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
||||||
equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
assert.equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
||||||
|
|
||||||
//equal(el.find('[name="richtext1"]').val(), '', 'check textarea1 value')
|
//equal(el.find('[name="richtext1"]').val(), '', 'check textarea1 value')
|
||||||
//equal(el.find('[name="richtext1"]').prop('required'), false, 'check textarea1 required')
|
//equal(el.find('[name="richtext1"]').prop('required'), false, 'check textarea1 required')
|
||||||
equal(el.find('[name="richtext1"]').is(":focus"), false, 'check textarea1 focus')
|
assert.equal(el.find('[name="richtext1"]').is(":focus"), false, 'check textarea1 focus')
|
||||||
|
|
||||||
//equal(el.find('[name="richtext2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
//equal(el.find('[name="richtext2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
||||||
//equal(el.find('[name="richtext2"]').prop('required'), true, 'check textarea2 required')
|
//equal(el.find('[name="richtext2"]').prop('required'), true, 'check textarea2 required')
|
||||||
equal(el.find('[name="richtext2"]').is(":focus"), false, 'check textarea2 focus')
|
assert.equal(el.find('[name="richtext2"]').is(":focus"), false, 'check textarea2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="checkbox1"]').first().is(":checked"), false)
|
assert.equal(el.find('[name="checkbox1"]').first().is(":checked"), false)
|
||||||
equal(el.find('[name="checkbox1"]').last().is(":checked"), false)
|
assert.equal(el.find('[name="checkbox1"]').last().is(":checked"), false)
|
||||||
equal(el.find('[name="checkbox2"]').is(":checked"), true)
|
assert.equal(el.find('[name="checkbox2"]').is(":checked"), true)
|
||||||
|
|
||||||
equal(el.find('[name="boolean1"]').val(), 'true')
|
assert.equal(el.find('[name="boolean1"]').val(), 'true')
|
||||||
equal(el.find('[name="boolean1"]').val(), 'true')
|
assert.equal(el.find('[name="boolean1"]').val(), 'true')
|
||||||
equal(el.find('[name="boolean2"]').val(), 'false')
|
assert.equal(el.find('[name="boolean2"]').val(), 'false')
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form params check", function() {
|
QUnit.test("form params check", assert => {
|
||||||
// deepEqual(item, test.value, 'group set/get tests' );
|
// assert.deepEqual(item, test.value, 'group set/get tests' );
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form params check</h1><form id="form2"></form>')
|
$('#qunit').append('<hr><h1>form params check</h1><form id="form2"></form>')
|
||||||
var el = $('#form2')
|
var el = $('#form2')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
input2: '123abc',
|
input2: '123abc',
|
||||||
|
@ -231,70 +231,70 @@ test("form params check", function() {
|
||||||
params: defaults,
|
params: defaults,
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
assert.equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
||||||
equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
assert.equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
||||||
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
// assert.equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="input2"]').val(), '123abc', 'check input2 value')
|
assert.equal(el.find('[name="input2"]').val(), '123abc', 'check input2 value')
|
||||||
equal(el.find('[name="input2"]').prop('required'), true, 'check input2 required')
|
assert.equal(el.find('[name="input2"]').prop('required'), true, 'check input2 required')
|
||||||
equal(el.find('[name="input2"]').is(":focus"), false, 'check input2 focus')
|
assert.equal(el.find('[name="input2"]').is(":focus"), false, 'check input2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="input3"]').prop("disabled"), true, 'check input3 disabled')
|
assert.equal(el.find('[name="input3"]').prop("disabled"), true, 'check input3 disabled')
|
||||||
|
|
||||||
equal(el.find('[name="password1"]').val(), '', 'check password1 value')
|
assert.equal(el.find('[name="password1"]').val(), '', 'check password1 value')
|
||||||
equal(el.find('[name="password1_confirm"]').val(), '', 'check password1 value')
|
assert.equal(el.find('[name="password1_confirm"]').val(), '', 'check password1 value')
|
||||||
equal(el.find('[name="password1"]').prop('required'), false, 'check password1 required')
|
assert.equal(el.find('[name="password1"]').prop('required'), false, 'check password1 required')
|
||||||
equal(el.find('[name="password1"]').is(":focus"), false, 'check password1 focus')
|
assert.equal(el.find('[name="password1"]').is(":focus"), false, 'check password1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="password2"]').val(), 'pw1234<l>', 'check password2 value')
|
assert.equal(el.find('[name="password2"]').val(), 'pw1234<l>', 'check password2 value')
|
||||||
equal(el.find('[name="password2_confirm"]').val(), 'pw1234<l>', 'check password2 value')
|
assert.equal(el.find('[name="password2_confirm"]').val(), 'pw1234<l>', 'check password2 value')
|
||||||
equal(el.find('[name="password2"]').prop('required'), true, 'check password2 required')
|
assert.equal(el.find('[name="password2"]').prop('required'), true, 'check password2 required')
|
||||||
equal(el.find('[name="password2"]').is(":focus"), false, 'check password2 focus')
|
assert.equal(el.find('[name="password2"]').is(":focus"), false, 'check password2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="textarea1"]').val(), '', 'check textarea1 value')
|
assert.equal(el.find('[name="textarea1"]').val(), '', 'check textarea1 value')
|
||||||
equal(el.find('[name="textarea1"]').prop('required'), false, 'check textarea1 required')
|
assert.equal(el.find('[name="textarea1"]').prop('required'), false, 'check textarea1 required')
|
||||||
equal(el.find('[name="textarea1"]').is(":focus"), false, 'check textarea1 focus')
|
assert.equal(el.find('[name="textarea1"]').is(":focus"), false, 'check textarea1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="textarea2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
assert.equal(el.find('[name="textarea2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
||||||
equal(el.find('[name="textarea2"]').prop('required'), true, 'check textarea2 required')
|
assert.equal(el.find('[name="textarea2"]').prop('required'), true, 'check textarea2 required')
|
||||||
equal(el.find('[name="textarea2"]').is(":focus"), false, 'check textarea2 focus')
|
assert.equal(el.find('[name="textarea2"]').is(":focus"), false, 'check textarea2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="textarea3"]').prop("disabled"), true, 'check textarea3 disabled')
|
assert.equal(el.find('[name="textarea3"]').prop("disabled"), true, 'check textarea3 disabled')
|
||||||
|
|
||||||
equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
assert.equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
||||||
equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
assert.equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
||||||
equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
assert.equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select2"]').val(), 'true', 'check select2 value')
|
assert.equal(el.find('[name="select2"]').val(), 'true', 'check select2 value')
|
||||||
equal(el.find('[name="select2"]').prop('required'), true, 'check select2 required')
|
assert.equal(el.find('[name="select2"]').prop('required'), true, 'check select2 required')
|
||||||
equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
assert.equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select3"]').val(), '', 'check select3 value')
|
assert.equal(el.find('[name="select3"]').val(), '', 'check select3 value')
|
||||||
equal(el.find('[name="select3"]').prop('required'), true, 'check select3 required')
|
assert.equal(el.find('[name="select3"]').prop('required'), true, 'check select3 required')
|
||||||
equal(el.find('[name="select3"]').is(":focus"), false, 'check select3 focus')
|
assert.equal(el.find('[name="select3"]').is(":focus"), false, 'check select3 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select4"]').val(), '', 'check select4 value')
|
assert.equal(el.find('[name="select4"]').val(), '', 'check select4 value')
|
||||||
equal(el.find('[name="select4"]').prop('required'), true, 'check select4 required')
|
assert.equal(el.find('[name="select4"]').prop('required'), true, 'check select4 required')
|
||||||
equal(el.find('[name="select4"]').is(":focus"), false, 'check select4 focus')
|
assert.equal(el.find('[name="select4"]').is(":focus"), false, 'check select4 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select5"]').prop("disabled"), true, 'check select5 disabled')
|
assert.equal(el.find('[name="select5"]').prop("disabled"), true, 'check select5 disabled')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti1"]').val(), 'false', 'check selectmulti1 value')
|
assert.equal(el.find('[name="selectmulti1"]').val(), 'false', 'check selectmulti1 value')
|
||||||
equal(el.find('[name="selectmulti1"]').prop('required'), false, 'check selectmulti1 required')
|
assert.equal(el.find('[name="selectmulti1"]').prop('required'), false, 'check selectmulti1 required')
|
||||||
equal(el.find('[name="selectmulti1"]').is(":focus"), false, 'check selectmulti1 focus')
|
assert.equal(el.find('[name="selectmulti1"]').is(":focus"), false, 'check selectmulti1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
assert.equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
||||||
equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
assert.equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti3"]').prop("disabled"), true, 'check selectmulti3 disabled')
|
assert.equal(el.find('[name="selectmulti3"]').prop("disabled"), true, 'check selectmulti3 disabled')
|
||||||
equal(el.find('[name="selectmultioption3"]').prop("disabled"), true, 'check selectmultioption3 disabled')
|
assert.equal(el.find('[name="selectmultioption3"]').prop("disabled"), true, 'check selectmultioption3 disabled')
|
||||||
|
|
||||||
equal(el.find('[name="boolean4"]').prop("disabled"), true, 'check boolean4 disabled')
|
assert.equal(el.find('[name="boolean4"]').prop("disabled"), true, 'check boolean4 disabled')
|
||||||
equal(el.find('[data-name="richtext9"]').prop("contenteditable"), "false", 'check richtext9 disabled')
|
assert.equal(el.find('[data-name="richtext9"]').prop("contenteditable"), "false", 'check richtext9 disabled')
|
||||||
equal(el.find('[name="checkbox5"]').prop("disabled"), true, 'check checkbox5 disabled')
|
assert.equal(el.find('[name="checkbox5"]').prop("disabled"), true, 'check checkbox5 disabled')
|
||||||
equal(el.find('[name="radiobox3"]').prop("disabled"), true, 'check radiobox3 disabled')
|
assert.equal(el.find('[name="radiobox3"]').prop("disabled"), true, 'check radiobox3 disabled')
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
test_params = {
|
test_params = {
|
||||||
|
@ -359,12 +359,12 @@ test("form params check", function() {
|
||||||
boolean3: true,
|
boolean3: true,
|
||||||
boolean4: false,
|
boolean4: false,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form defaults + params check", function() {
|
QUnit.test("form defaults + params check", assert => {
|
||||||
// deepEqual(item, test.value, 'group set/get tests' );
|
// assert.deepEqual(item, test.value, 'group set/get tests' );
|
||||||
|
|
||||||
// mix default and params -> check it -> add note
|
// mix default and params -> check it -> add note
|
||||||
// test auto completion
|
// test auto completion
|
||||||
|
@ -373,7 +373,7 @@ test("form defaults + params check", function() {
|
||||||
// form params check
|
// form params check
|
||||||
|
|
||||||
// add signature only if form_state is empty
|
// add signature only if form_state is empty
|
||||||
$('#forms').append('<hr><h1>form defaults + params check</h1><form id="form3"></form>')
|
$('#qunit').append('<hr><h1>form defaults + params check</h1><form id="form3"></form>')
|
||||||
var el = $('#form3')
|
var el = $('#form3')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
input1: '',
|
input1: '',
|
||||||
|
@ -402,47 +402,47 @@ test("form defaults + params check", function() {
|
||||||
params: defaults,
|
params: defaults,
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
assert.equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
||||||
equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
assert.equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
||||||
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
// assert.equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
||||||
equal(el.find('[name="input2"]').val(), 'some used default', 'check input2 value')
|
assert.equal(el.find('[name="input2"]').val(), 'some used default', 'check input2 value')
|
||||||
equal(el.find('[name="input2"]').prop('required'), false, 'check input2 required')
|
assert.equal(el.find('[name="input2"]').prop('required'), false, 'check input2 required')
|
||||||
|
|
||||||
equal(el.find('[name="password1"]').val(), 'some used pass', 'check password1 value')
|
assert.equal(el.find('[name="password1"]').val(), 'some used pass', 'check password1 value')
|
||||||
equal(el.find('[name="password1_confirm"]').val(), 'some used pass', 'check password1 value')
|
assert.equal(el.find('[name="password1_confirm"]').val(), 'some used pass', 'check password1 value')
|
||||||
equal(el.find('[name="password1"]').prop('required'), true, 'check password1 required')
|
assert.equal(el.find('[name="password1"]').prop('required'), true, 'check password1 required')
|
||||||
equal(el.find('[name="password1"]').is(":focus"), false, 'check password1 focus')
|
assert.equal(el.find('[name="password1"]').is(":focus"), false, 'check password1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="password2"]').val(), 'pw1234<l>', 'check password2 value')
|
assert.equal(el.find('[name="password2"]').val(), 'pw1234<l>', 'check password2 value')
|
||||||
equal(el.find('[name="password2_confirm"]').val(), 'pw1234<l>', 'check password2 value')
|
assert.equal(el.find('[name="password2_confirm"]').val(), 'pw1234<l>', 'check password2 value')
|
||||||
equal(el.find('[name="password2"]').prop('required'), true, 'check password2 required')
|
assert.equal(el.find('[name="password2"]').prop('required'), true, 'check password2 required')
|
||||||
equal(el.find('[name="password2"]').is(":focus"), false, 'check password2 focus')
|
assert.equal(el.find('[name="password2"]').is(":focus"), false, 'check password2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="textarea1"]').val(), 'some used text', 'check textarea1 value')
|
assert.equal(el.find('[name="textarea1"]').val(), 'some used text', 'check textarea1 value')
|
||||||
equal(el.find('[name="textarea1"]').prop('required'), true, 'check textarea1 required')
|
assert.equal(el.find('[name="textarea1"]').prop('required'), true, 'check textarea1 required')
|
||||||
equal(el.find('[name="textarea1"]').is(":focus"), false, 'check textarea1 focus')
|
assert.equal(el.find('[name="textarea1"]').is(":focus"), false, 'check textarea1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="textarea2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
assert.equal(el.find('[name="textarea2"]').val(), 'lalu <l> lalu', 'check textarea2 value')
|
||||||
equal(el.find('[name="textarea2"]').prop('required'), true, 'check textarea2 required')
|
assert.equal(el.find('[name="textarea2"]').prop('required'), true, 'check textarea2 required')
|
||||||
equal(el.find('[name="textarea2"]').is(":focus"), false, 'check textarea2 focus')
|
assert.equal(el.find('[name="textarea2"]').is(":focus"), false, 'check textarea2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
assert.equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
||||||
equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
assert.equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
||||||
equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
assert.equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select2"]').val(), 'false', 'check select2 value')
|
assert.equal(el.find('[name="select2"]').val(), 'false', 'check select2 value')
|
||||||
equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
assert.equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
||||||
equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
assert.equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
assert.equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
||||||
equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
assert.equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form dependend fields check", function() {
|
QUnit.test("form dependend fields check", assert => {
|
||||||
// deepEqual(item, test.value, 'group set/get tests' );
|
// assert.deepEqual(item, test.value, 'group set/get tests' );
|
||||||
|
|
||||||
// mix default and params -> check it -> add note
|
// mix default and params -> check it -> add note
|
||||||
// test auto completion
|
// test auto completion
|
||||||
|
@ -451,7 +451,7 @@ test("form dependend fields check", function() {
|
||||||
// form params check
|
// form params check
|
||||||
|
|
||||||
// add signature only if form_state is empty
|
// add signature only if form_state is empty
|
||||||
$('#forms').append('<hr><h1>form dependend fields check</h1><form id="form4"></form>')
|
$('#qunit').append('<hr><h1>form dependend fields check</h1><form id="form4"></form>')
|
||||||
var el = $('#form4')
|
var el = $('#form4')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
input1: '',
|
input1: '',
|
||||||
|
@ -549,27 +549,27 @@ test("form dependend fields check", function() {
|
||||||
],
|
],
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
assert.equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
||||||
equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
assert.equal(el.find('[name="input1"]').prop('required'), false, 'check input1 required')
|
||||||
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
// assert.equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
||||||
equal(el.find('[name="input2"]').val(), 'some used default', 'check input2 value')
|
assert.equal(el.find('[name="input2"]').val(), 'some used default', 'check input2 value')
|
||||||
equal(el.find('[name="input2"]').prop('required'), false, 'check input2 required')
|
assert.equal(el.find('[name="input2"]').prop('required'), false, 'check input2 required')
|
||||||
|
|
||||||
equal(el.find('[name="input3"]').val(), 'some used default', 'check input3 value')
|
assert.equal(el.find('[name="input3"]').val(), 'some used default', 'check input3 value')
|
||||||
equal(el.find('[name="input3"]').prop('required'), false, 'check input3 required')
|
assert.equal(el.find('[name="input3"]').prop('required'), false, 'check input3 required')
|
||||||
|
|
||||||
equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
assert.equal(el.find('[name="select1"]').val(), 'false', 'check select1 value')
|
||||||
equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
assert.equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
||||||
equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
assert.equal(el.find('[name="select1"]').is(":focus"), false, 'check select1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="select2"]').val(), 'false', 'check select2 value')
|
assert.equal(el.find('[name="select2"]').val(), 'false', 'check select2 value')
|
||||||
equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
assert.equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
||||||
equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
assert.equal(el.find('[name="select2"]').is(":focus"), false, 'check select2 focus')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[0], 'true', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
assert.equal(el.find('[name="selectmulti2"]').val()[1], 'false', 'check selectmulti2 value')
|
||||||
equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
assert.equal(el.find('[name="selectmulti2"]').prop('required'), true, 'check selectmulti2 required')
|
||||||
equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
assert.equal(el.find('[name="selectmulti2"]').is(":focus"), false, 'check selectmulti2 focus')
|
||||||
|
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
|
@ -589,14 +589,14 @@ test("form dependend fields check", function() {
|
||||||
date3: '2015-01-11',
|
date3: '2015-01-11',
|
||||||
date4: null,
|
date4: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
errors = form.validate(params)
|
errors = form.validate(params)
|
||||||
test_errors = {
|
test_errors = {
|
||||||
datetime4: "is required",
|
datetime4: "is required",
|
||||||
date4: "is required",
|
date4: "is required",
|
||||||
}
|
}
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
|
|
||||||
el.find('[name="select1"]').val('true')
|
el.find('[name="select1"]').val('true')
|
||||||
|
@ -619,11 +619,11 @@ test("form dependend fields check", function() {
|
||||||
date3: '2015-01-11',
|
date3: '2015-01-11',
|
||||||
date4: null,
|
date4: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form handler check with and without fieldset", function() {
|
QUnit.test("form handler check with and without fieldset", assert => {
|
||||||
// deepEqual(item, test.value, 'group set/get tests' );
|
// assert.deepEqual(item, test.value, 'group set/get tests' );
|
||||||
|
|
||||||
// mix default and params -> check it -> add note
|
// mix default and params -> check it -> add note
|
||||||
// test auto completion
|
// test auto completion
|
||||||
|
@ -632,7 +632,7 @@ test("form handler check with and without fieldset", function() {
|
||||||
// form params check
|
// form params check
|
||||||
|
|
||||||
// add signature only if form_state is empty
|
// add signature only if form_state is empty
|
||||||
$('#forms').append('<hr><h1>form handler check with and without fieldset</h1><form id="form5"></form>')
|
$('#qunit').append('<hr><h1>form handler check with and without fieldset</h1><form id="form5"></form>')
|
||||||
var el = $('#form5')
|
var el = $('#form5')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
select1: 'a',
|
select1: 'a',
|
||||||
|
@ -683,18 +683,18 @@ test("form handler check with and without fieldset", function() {
|
||||||
],
|
],
|
||||||
//noFieldset: true,
|
//noFieldset: true,
|
||||||
});
|
});
|
||||||
equal(el.find('[name="select1"]').val(), 'a', 'check select1 value')
|
assert.equal(el.find('[name="select1"]').val(), 'a', 'check select1 value')
|
||||||
equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
assert.equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
||||||
|
|
||||||
equal(el.find('[name="select2"]').val(), '1', 'check select2 value')
|
assert.equal(el.find('[name="select2"]').val(), '1', 'check select2 value')
|
||||||
equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
assert.equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
||||||
|
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
select1: 'a',
|
select1: 'a',
|
||||||
select2: '1',
|
select2: '1',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
el.find('[name="select1"]').val('b')
|
el.find('[name="select1"]').val('b')
|
||||||
el.find('[name="select1"]').trigger('change')
|
el.find('[name="select1"]').trigger('change')
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
|
@ -702,7 +702,7 @@ test("form handler check with and without fieldset", function() {
|
||||||
select1: 'b',
|
select1: 'b',
|
||||||
select2: '3',
|
select2: '3',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
el.find('[name="select1"]').val('a')
|
el.find('[name="select1"]').val('a')
|
||||||
el.find('[name="select1"]').trigger('change')
|
el.find('[name="select1"]').trigger('change')
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
|
@ -710,7 +710,7 @@ test("form handler check with and without fieldset", function() {
|
||||||
select1: 'a',
|
select1: 'a',
|
||||||
select2: '1',
|
select2: '1',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// test with noFieldset
|
// test with noFieldset
|
||||||
el.empty()
|
el.empty()
|
||||||
|
@ -728,18 +728,18 @@ test("form handler check with and without fieldset", function() {
|
||||||
],
|
],
|
||||||
noFieldset: true,
|
noFieldset: true,
|
||||||
});
|
});
|
||||||
equal(el.find('[name="select1"]').val(), 'a', 'check select1 value')
|
assert.equal(el.find('[name="select1"]').val(), 'a', 'check select1 value')
|
||||||
equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
assert.equal(el.find('[name="select1"]').prop('required'), false, 'check select1 required')
|
||||||
|
|
||||||
equal(el.find('[name="select2"]').val(), '1', 'check select2 value')
|
assert.equal(el.find('[name="select2"]').val(), '1', 'check select2 value')
|
||||||
equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
assert.equal(el.find('[name="select2"]').prop('required'), false, 'check select2 required')
|
||||||
|
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
select1: 'a',
|
select1: 'a',
|
||||||
select2: '1',
|
select2: '1',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
el.find('[name="select1"]').val('b')
|
el.find('[name="select1"]').val('b')
|
||||||
el.find('[name="select1"]').trigger('change')
|
el.find('[name="select1"]').trigger('change')
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
|
@ -747,7 +747,7 @@ test("form handler check with and without fieldset", function() {
|
||||||
select1: 'b',
|
select1: 'b',
|
||||||
select2: '3',
|
select2: '3',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
el.find('[name="select1"]').val('a')
|
el.find('[name="select1"]').val('a')
|
||||||
el.find('[name="select1"]').trigger('change')
|
el.find('[name="select1"]').trigger('change')
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
|
@ -755,11 +755,11 @@ test("form handler check with and without fieldset", function() {
|
||||||
select1: 'a',
|
select1: 'a',
|
||||||
select2: '1',
|
select2: '1',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form postmaster filter", function() {
|
QUnit.test("form postmaster filter", assert => {
|
||||||
|
|
||||||
App.TicketPriority.refresh([
|
App.TicketPriority.refresh([
|
||||||
{
|
{
|
||||||
|
@ -782,7 +782,7 @@ test("form postmaster filter", function() {
|
||||||
},
|
},
|
||||||
] )
|
] )
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form postmaster filter</h1><form id="form6"></form>')
|
$('#qunit').append('<hr><h1>form postmaster filter</h1><form id="form6"></form>')
|
||||||
var el = $('#form6')
|
var el = $('#form6')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
input2: 'some name',
|
input2: 'some name',
|
||||||
|
@ -864,7 +864,7 @@ test("form postmaster filter", function() {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
el.find('[name="set::x-zammad-ticket-priority_id::value"]').closest('.js-filterElement').find('.js-remove').click()
|
el.find('[name="set::x-zammad-ticket-priority_id::value"]').closest('.js-filterElement').find('.js-remove').click()
|
||||||
el.find('[name="set::x-zammad-ticket-customer_id::value"]').closest('.js-filterElement').find('.js-remove').click()
|
el.find('[name="set::x-zammad-ticket-customer_id::value"]').closest('.js-filterElement').find('.js-remove').click()
|
||||||
|
@ -897,7 +897,7 @@ test("form postmaster filter", function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
el.find('.postmaster_set .js-filterElement').last().find('.filter-controls .js-add').click()
|
el.find('.postmaster_set .js-filterElement').last().find('.filter-controls .js-add').click()
|
||||||
|
|
||||||
|
@ -932,10 +932,10 @@ test("form postmaster filter", function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
App.Delay.set(function() {
|
App.Delay.set(function() {
|
||||||
test("form postmaster filter - needed to do delayed because of tag ui", function() {
|
QUnit.test("form postmaster filter - needed to do delayed because of tag ui", assert => {
|
||||||
el.find('[name="set::x-zammad-ticket-tags::value"]').closest('.js-filterElement').find('.token .close').last().click()
|
el.find('[name="set::x-zammad-ticket-tags::value"]').closest('.js-filterElement').find('.token .close').last().click()
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
test_params = {
|
test_params = {
|
||||||
|
@ -968,13 +968,13 @@ test("form postmaster filter", function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
})
|
})
|
||||||
}, 500);
|
}, 500);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form selector", function() {
|
QUnit.test("form selector", assert => {
|
||||||
$('#forms').append('<hr><h1>form selector</h1><div><form id="form7"></form></div>')
|
$('#qunit').append('<hr><h1>form selector</h1><div><form id="form7"></form></div>')
|
||||||
var el = $('#form7')
|
var el = $('#form7')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
input2: 'some name66',
|
input2: 'some name66',
|
||||||
|
@ -994,19 +994,19 @@ test("form selector", function() {
|
||||||
input2: 'some name66',
|
input2: 'some name66',
|
||||||
};
|
};
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
deepEqual(params, test_params, 'form param check via $("#form")')
|
assert.deepEqual(params, test_params, 'form param check via $("#form")')
|
||||||
|
|
||||||
params = App.ControllerForm.params(el.find('input'))
|
params = App.ControllerForm.params(el.find('input'))
|
||||||
deepEqual(params, test_params, 'form param check via $("#form").find("input")')
|
assert.deepEqual(params, test_params, 'form param check via $("#form").find("input")')
|
||||||
|
|
||||||
params = App.ControllerForm.params(el.parent())
|
params = App.ControllerForm.params(el.parent())
|
||||||
deepEqual(params, test_params, 'form param check via $("#form").parent()')
|
assert.deepEqual(params, test_params, 'form param check via $("#form").parent()')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form params check", function() {
|
QUnit.test("form params check", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form params check</h1><form id="form9"></form>')
|
$('#qunit').append('<hr><h1>form params check</h1><form id="form9"></form>')
|
||||||
var el = $('#form9')
|
var el = $('#form9')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
select1: false,
|
select1: false,
|
||||||
|
@ -1038,13 +1038,13 @@ test("form params check", function() {
|
||||||
}
|
}
|
||||||
//console.log('params', params)
|
//console.log('params', params)
|
||||||
//console.log('test_params', test_params)
|
//console.log('test_params', test_params)
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form params check direct", function() {
|
QUnit.test("form params check direct", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form params check direct</h1><form id="form10"><input name="a" value="b"><input name="l::l::l1" value="d"><input name="l::l::" value><input name="f::f::" value><input name="f::f::f1" value="e"></form>')
|
$('#qunit').append('<hr><h1>form params check direct</h1><form id="form10"><input name="a" value="b"><input name="l::l::l1" value="d"><input name="l::l::" value><input name="f::f::" value><input name="f::f::f1" value="e"></form>')
|
||||||
var el = $('#form10')
|
var el = $('#form10')
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
|
@ -1065,12 +1065,12 @@ test("form params check direct", function() {
|
||||||
}
|
}
|
||||||
//console.log('params', params)
|
//console.log('params', params)
|
||||||
//console.log('test_params', test_params)
|
//console.log('test_params', test_params)
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
});
|
});
|
||||||
|
|
||||||
test("object manager form 1", function() {
|
QUnit.test("object manager form 1", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>object manager 1</h1><form id="form11"></form>')
|
$('#qunit').append('<hr><h1>object manager 1</h1><form id="form11"></form>')
|
||||||
var el = $('#form11')
|
var el = $('#form11')
|
||||||
|
|
||||||
var defaults = {}
|
var defaults = {}
|
||||||
|
@ -1118,7 +1118,7 @@ test("object manager form 1", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
el.find('[name=data_type]').val('datetime').trigger('change')
|
el.find('[name=data_type]').val('datetime').trigger('change')
|
||||||
|
|
||||||
|
@ -1153,13 +1153,13 @@ test("object manager form 1", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("object manager form 2", function() {
|
QUnit.test("object manager form 2", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>object manager 2</h1><form id="form12"></form>')
|
$('#qunit').append('<hr><h1>object manager 2</h1><form id="form12"></form>')
|
||||||
var el = $('#form12')
|
var el = $('#form12')
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
|
@ -1230,13 +1230,13 @@ test("object manager form 2", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("object manager form 3", function() {
|
QUnit.test("object manager form 3", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>object manager 3</h1><form id="form13"></form>')
|
$('#qunit').append('<hr><h1>object manager 3</h1><form id="form13"></form>')
|
||||||
var el = $('#form13')
|
var el = $('#form13')
|
||||||
|
|
||||||
var defaults = {}
|
var defaults = {}
|
||||||
|
@ -1284,7 +1284,7 @@ test("object manager form 3", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
el.find('[name="screens::create_middle::ticket.customer::shown"]').click()
|
el.find('[name="screens::create_middle::ticket.customer::shown"]').click()
|
||||||
el.find('[name="screens::edit::ticket.customer::shown"]').click()
|
el.find('[name="screens::edit::ticket.customer::shown"]').click()
|
||||||
|
@ -1321,13 +1321,13 @@ test("object manager form 3", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("check if select value is not existing but is shown", function() {
|
QUnit.test("check if select value is not existing but is shown", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>check if select value is not existing but is shown</h1><form id="form17"></form>')
|
$('#qunit').append('<hr><h1>check if select value is not existing but is shown</h1><form id="form17"></form>')
|
||||||
var el = $('#form17')
|
var el = $('#form17')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
select1: 'NOT EXISTING',
|
select1: 'NOT EXISTING',
|
||||||
|
@ -1346,20 +1346,20 @@ test("check if select value is not existing but is shown", function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
select1: 'NOT EXISTING',
|
select1: 'NOT EXISTING',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params)
|
assert.deepEqual(params, test_params)
|
||||||
|
|
||||||
equal('AA', el.find('[name=select1] option')[0].text)
|
assert.equal('AA', el.find('[name=select1] option')[0].text)
|
||||||
equal('äöü', el.find('[name=select1] option')[1].text)
|
assert.equal('äöü', el.find('[name=select1] option')[1].text)
|
||||||
equal('b', el.find('[name=select1] option')[2].text)
|
assert.equal('b', el.find('[name=select1] option')[2].text)
|
||||||
equal('B', el.find('[name=select1] option')[3].text)
|
assert.equal('B', el.find('[name=select1] option')[3].text)
|
||||||
equal('NOT EXISTING', el.find('[name=select1] option')[4].text)
|
assert.equal('NOT EXISTING', el.find('[name=select1] option')[4].text)
|
||||||
equal('XX', el.find('[name=select1] option')[5].text)
|
assert.equal('XX', el.find('[name=select1] option')[5].text)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("check if select value is not existing and is not shown", function() {
|
QUnit.test("check if select value is not existing and is not shown", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>check if select value is not existing and is not shown</h1><form id="form18"></form>')
|
$('#qunit').append('<hr><h1>check if select value is not existing and is not shown</h1><form id="form18"></form>')
|
||||||
var el = $('#form18')
|
var el = $('#form18')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
select1: 'NOT EXISTING',
|
select1: 'NOT EXISTING',
|
||||||
|
@ -1379,19 +1379,19 @@ test("check if select value is not existing and is not shown", function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
select1: 'XY',
|
select1: 'XY',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params)
|
assert.deepEqual(params, test_params)
|
||||||
|
|
||||||
equal('AA', el.find('[name=select1] option')[0].text)
|
assert.equal('AA', el.find('[name=select1] option')[0].text)
|
||||||
equal('äöü', el.find('[name=select1] option')[1].text)
|
assert.equal('äöü', el.find('[name=select1] option')[1].text)
|
||||||
equal('b', el.find('[name=select1] option')[2].text)
|
assert.equal('b', el.find('[name=select1] option')[2].text)
|
||||||
equal('B', el.find('[name=select1] option')[3].text)
|
assert.equal('B', el.find('[name=select1] option')[3].text)
|
||||||
equal('XX', el.find('[name=select1] option')[4].text)
|
assert.equal('XX', el.find('[name=select1] option')[4].text)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("time range form 1", function() {
|
QUnit.test("time range form 1", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>time range form 1</h1><form id="form14"></form>')
|
$('#qunit').append('<hr><h1>time range form 1</h1><form id="form14"></form>')
|
||||||
var el = $('#form14')
|
var el = $('#form14')
|
||||||
|
|
||||||
var defaults = {}
|
var defaults = {}
|
||||||
|
@ -1414,7 +1414,7 @@ test("time range form 1", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'base form param range check')
|
assert.deepEqual(params, test_params, 'base form param range check')
|
||||||
|
|
||||||
el.find('.js-range').val('minute').trigger('change')
|
el.find('.js-range').val('minute').trigger('change')
|
||||||
el.find('.js-valueRangeSelector .js-value').val('120').trigger('change')
|
el.find('.js-valueRangeSelector .js-value').val('120').trigger('change')
|
||||||
|
@ -1426,7 +1426,7 @@ test("time range form 1", function() {
|
||||||
"value": "120"
|
"value": "120"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param minute range check')
|
assert.deepEqual(params, test_params, 'form param minute range check')
|
||||||
|
|
||||||
el.find('.js-range').val('hour').trigger('change')
|
el.find('.js-range').val('hour').trigger('change')
|
||||||
el.find('.js-valueRangeSelector .js-value').val('48').trigger('change')
|
el.find('.js-valueRangeSelector .js-value').val('48').trigger('change')
|
||||||
|
@ -1438,7 +1438,7 @@ test("time range form 1", function() {
|
||||||
"value": "48"
|
"value": "48"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param hour range check')
|
assert.deepEqual(params, test_params, 'form param hour range check')
|
||||||
|
|
||||||
el.find('.js-range').val('day').trigger('change')
|
el.find('.js-range').val('day').trigger('change')
|
||||||
el.find('.js-valueRangeSelector .js-value').val('31').trigger('change')
|
el.find('.js-valueRangeSelector .js-value').val('31').trigger('change')
|
||||||
|
@ -1450,7 +1450,7 @@ test("time range form 1", function() {
|
||||||
"value": "31"
|
"value": "31"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param day range check')
|
assert.deepEqual(params, test_params, 'form param day range check')
|
||||||
|
|
||||||
el.find('.js-range').val('month').trigger('change')
|
el.find('.js-range').val('month').trigger('change')
|
||||||
el.find('.js-valueRangeSelector .js-value').val('12').trigger('change')
|
el.find('.js-valueRangeSelector .js-value').val('12').trigger('change')
|
||||||
|
@ -1462,7 +1462,7 @@ test("time range form 1", function() {
|
||||||
"value": "12"
|
"value": "12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param month range check')
|
assert.deepEqual(params, test_params, 'form param month range check')
|
||||||
|
|
||||||
el.find('.js-range').val('year').trigger('change')
|
el.find('.js-range').val('year').trigger('change')
|
||||||
el.find('.js-valueRangeSelector .js-value').val('20').trigger('change')
|
el.find('.js-valueRangeSelector .js-value').val('20').trigger('change')
|
||||||
|
@ -1474,12 +1474,12 @@ test("time range form 1", function() {
|
||||||
"value": "20"
|
"value": "20"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param year range check')
|
assert.deepEqual(params, test_params, 'form param year range check')
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form select with empty option list", function() {
|
QUnit.test("form select with empty option list", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form select with empty option list</h1><form id="form15"></form>')
|
$('#qunit').append('<hr><h1>form select with empty option list</h1><form id="form15"></form>')
|
||||||
var el = $('#form15')
|
var el = $('#form15')
|
||||||
var defaults = {}
|
var defaults = {}
|
||||||
new App.ControllerForm({
|
new App.ControllerForm({
|
||||||
|
@ -1506,12 +1506,12 @@ test("form select with empty option list", function() {
|
||||||
select5: 'A',
|
select5: 'A',
|
||||||
select6: 'B',
|
select6: 'B',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params)
|
assert.deepEqual(params, test_params)
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form elements with sort check", function() {
|
QUnit.test("form elements with sort check", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements with sort check</h1><form id="form16"></form>')
|
$('#qunit').append('<hr><h1>form elements with sort check</h1><form id="form16"></form>')
|
||||||
var el = $('#form16')
|
var el = $('#form16')
|
||||||
var defaults = {}
|
var defaults = {}
|
||||||
new App.ControllerForm({
|
new App.ControllerForm({
|
||||||
|
@ -1533,30 +1533,30 @@ test("form elements with sort check", function() {
|
||||||
checkbox1: 'A',
|
checkbox1: 'A',
|
||||||
radio1: 'A',
|
radio1: 'A',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params)
|
assert.deepEqual(params, test_params)
|
||||||
|
|
||||||
equal('AA', el.find('[name=select1] option')[0].text)
|
assert.equal('AA', el.find('[name=select1] option')[0].text)
|
||||||
equal('äöü', el.find('[name=select1] option')[1].text)
|
assert.equal('äöü', el.find('[name=select1] option')[1].text)
|
||||||
equal('b', el.find('[name=select1] option')[2].text)
|
assert.equal('b', el.find('[name=select1] option')[2].text)
|
||||||
equal('B', el.find('[name=select1] option')[3].text)
|
assert.equal('B', el.find('[name=select1] option')[3].text)
|
||||||
equal('XX', el.find('[name=select1] option')[4].text)
|
assert.equal('XX', el.find('[name=select1] option')[4].text)
|
||||||
|
|
||||||
equal('XX', el.find('[name=checkbox1]')[0].value)
|
assert.equal('XX', el.find('[name=checkbox1]')[0].value)
|
||||||
equal('', el.find('[name=checkbox1]')[1].value)
|
assert.equal('', el.find('[name=checkbox1]')[1].value)
|
||||||
equal('XY', el.find('[name=checkbox1]')[2].value)
|
assert.equal('XY', el.find('[name=checkbox1]')[2].value)
|
||||||
equal('B', el.find('[name=checkbox1]')[3].value)
|
assert.equal('B', el.find('[name=checkbox1]')[3].value)
|
||||||
equal('A', el.find('[name=checkbox1]')[4].value)
|
assert.equal('A', el.find('[name=checkbox1]')[4].value)
|
||||||
|
|
||||||
equal('XX', el.find('[name=radio1]')[0].value)
|
assert.equal('XX', el.find('[name=radio1]')[0].value)
|
||||||
equal('', el.find('[name=radio1]')[1].value)
|
assert.equal('', el.find('[name=radio1]')[1].value)
|
||||||
equal('XY', el.find('[name=radio1]')[2].value)
|
assert.equal('XY', el.find('[name=radio1]')[2].value)
|
||||||
equal('B', el.find('[name=radio1]')[3].value)
|
assert.equal('B', el.find('[name=radio1]')[3].value)
|
||||||
equal('A', el.find('[name=radio1]')[4].value)
|
assert.equal('A', el.find('[name=radio1]')[4].value)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form deep nesting", function() {
|
QUnit.test("form deep nesting", assert => {
|
||||||
$('#forms').append('<hr><h1>form selector</h1><div><form id="form19"></form></div>')
|
$('#qunit').append('<hr><h1>form selector</h1><div><form id="form19"></form></div>')
|
||||||
var el = $('#form19')
|
var el = $('#form19')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
a: {
|
a: {
|
||||||
|
@ -1580,11 +1580,11 @@ test("form deep nesting", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
deepEqual(params, defaults, 'nested params')
|
assert.deepEqual(params, defaults, 'nested params')
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form with external links", function() {
|
QUnit.test("form with external links", assert => {
|
||||||
$('#forms').append('<hr><h1>form with external links</h1><div><form id="form20"></form></div>')
|
$('#qunit').append('<hr><h1>form with external links</h1><div><form id="form20"></form></div>')
|
||||||
var el = $('#form20')
|
var el = $('#form20')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
a: '133',
|
a: '133',
|
||||||
|
@ -1603,7 +1603,7 @@ test("form with external links", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
deepEqual(params, defaults)
|
assert.deepEqual(params, defaults)
|
||||||
equal('https://example.com/?q=133', el.find('input[name="a"]').parents('.controls').find('a[href]').attr('href'))
|
assert.equal('https://example.com/?q=133', el.find('input[name="a"]').parents('.controls').find('a[href]').attr('href'))
|
||||||
equal('https://example.com/?q=abc%20d', el.find('select[name="b"]').parents('.controls').find('a[href]').attr('href'))
|
assert.equal('https://example.com/?q=abc%20d', el.find('select[name="b"]').parents('.controls').find('a[href]').attr('href'))
|
||||||
});
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
function check_ajax_field(field, value, count, callback, waitTotal = 30000, wait = 0) {
|
function check_ajax_field(field, value, count, callback, assert, waitTotal = 30000, wait = 0) {
|
||||||
$elementInput = $('[name="' + field + '"].js-shadow + .js-input')
|
$elementInput = $('[name="' + field + '"].js-shadow + .js-input')
|
||||||
if ($elementInput.val() != value) {
|
if ($elementInput.val() != value) {
|
||||||
$elementInput.focus().val(value).trigger('input')
|
$elementInput.focus().val(value).trigger('input')
|
||||||
|
@ -9,22 +9,22 @@ function check_ajax_field(field, value, count, callback, waitTotal = 30000, wait
|
||||||
var match = entries == count
|
var match = entries == count
|
||||||
|
|
||||||
if (match || wait >= waitTotal) {
|
if (match || wait >= waitTotal) {
|
||||||
equal(entries, count, 'search result found for email address ' + value)
|
assert.equal(entries, count, 'search result found for email address ' + value)
|
||||||
callback()
|
callback()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
wait += 100
|
wait += 100
|
||||||
if (wait % 3000 == 0) {
|
if (wait % 3000 == 0) {
|
||||||
ok(true, 'check_ajax_field for ' + field + ' waiting ' + wait)
|
assert.ok(true, 'check_ajax_field for ' + field + ' waiting ' + wait)
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
check_ajax_field(field, value, count, callback, waitTotal, wait)
|
check_ajax_field(field, value, count, callback, assert, waitTotal, wait)
|
||||||
}, 100)
|
}, 100)
|
||||||
}
|
}
|
||||||
|
|
||||||
test( "autocompletion_ajax check", function(assert) {
|
QUnit.test( "autocompletion_ajax check", assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>autocompletion_ajax check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>autocompletion_ajax check</h1><form id="form1"></form>')
|
||||||
|
@ -57,14 +57,14 @@ test( "autocompletion_ajax check", function(assert) {
|
||||||
})
|
})
|
||||||
.then( function() {
|
.then( function() {
|
||||||
return new Promise( (resolve, reject) => {
|
return new Promise( (resolve, reject) => {
|
||||||
notEqual(App.Session.get(), undefined, 'User is logged in so the api requests will work')
|
assert.notEqual(App.Session.get(), undefined, 'User is logged in so the api requests will work')
|
||||||
|
|
||||||
check_ajax_field('autocompletion_ajax1', 'admin@example.com', 1, resolve)
|
check_ajax_field('autocompletion_ajax1', 'admin@example.com', 1, resolve, assert)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.then( function() {
|
.then( function() {
|
||||||
return new Promise( (resolve, reject) => {
|
return new Promise( (resolve, reject) => {
|
||||||
check_ajax_field('autocompletion_ajax1', 'xxx@example.com', 0, resolve)
|
check_ajax_field('autocompletion_ajax1', 'xxx@example.com', 0, resolve, assert)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
|
@ -1,4 +1,4 @@
|
||||||
test("form elements check", function(assert) {
|
QUnit.test("form elements check", assert => {
|
||||||
var done = assert.async(1)
|
var done = assert.async(1)
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
||||||
|
@ -21,7 +21,7 @@ test("form elements check", function(assert) {
|
||||||
color: '#fff'
|
color: '#fff'
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'default param check')
|
assert.deepEqual(params, test_params, 'default param check')
|
||||||
|
|
||||||
var inputEl = el.find('.js-input')[0]
|
var inputEl = el.find('.js-input')[0]
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ test("form elements check", function(assert) {
|
||||||
color: ''
|
color: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'UI allows color field to be empty')
|
assert.deepEqual(params, test_params, 'UI allows color field to be empty')
|
||||||
})
|
})
|
||||||
.then( function() {
|
.then( function() {
|
||||||
previousSwatchColor = getSwatchColor()
|
previousSwatchColor = getSwatchColor()
|
||||||
|
@ -51,8 +51,8 @@ test("form elements check", function(assert) {
|
||||||
color: 'rgb(0,100,100)'
|
color: 'rgb(0,100,100)'
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'UI allows to type in RGB colors')
|
assert.deepEqual(params, test_params, 'UI allows to type in RGB colors')
|
||||||
notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
assert.notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
||||||
})
|
})
|
||||||
.then( function() {
|
.then( function() {
|
||||||
var circle = el.find('.js-colorpicker-circle')[0]
|
var circle = el.find('.js-colorpicker-circle')[0]
|
||||||
|
@ -68,15 +68,15 @@ test("form elements check", function(assert) {
|
||||||
color: 'hsl(169,100%,20%)'
|
color: 'hsl(169,100%,20%)'
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'Color is transformed to HSL after moving the circle')
|
assert.deepEqual(params, test_params, 'Color is transformed to HSL after moving the circle')
|
||||||
notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
assert.notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
||||||
})
|
})
|
||||||
.then( function() {
|
.then( function() {
|
||||||
var slider = el.find('.js-colorpicker-slider')[0]
|
var slider = el.find('.js-colorpicker-slider')[0]
|
||||||
|
|
||||||
previousSwatchColor = getSwatchColor()
|
previousSwatchColor = getSwatchColor()
|
||||||
return new Promise( (resolve,reject) => {
|
return new Promise( (resolve,reject) => {
|
||||||
syn.drag(slider, { to: '-0x-10'}, resolve)
|
syn.drag(slider, { to: '-0x-11'}, resolve)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.then( function() {
|
.then( function() {
|
||||||
|
@ -85,8 +85,8 @@ test("form elements check", function(assert) {
|
||||||
color: 'hsl(169,100%,27%)'
|
color: 'hsl(169,100%,27%)'
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'Color code is changed after draging slider')
|
assert.deepEqual(params, test_params, 'Color code is changed after draging slider')
|
||||||
notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
assert.notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
||||||
})
|
})
|
||||||
.then( function() {
|
.then( function() {
|
||||||
let circle = el.find('.js-colorpicker-circle').position()
|
let circle = el.find('.js-colorpicker-circle').position()
|
||||||
|
@ -101,10 +101,10 @@ test("form elements check", function(assert) {
|
||||||
let new_circle = el.find('.js-colorpicker-circle').position()
|
let new_circle = el.find('.js-colorpicker-circle').position()
|
||||||
let new_slider = el.find('.js-colorpicker-slider').position()
|
let new_slider = el.find('.js-colorpicker-slider').position()
|
||||||
|
|
||||||
notDeepEqual(circle, new_circle, 'Color picker is updated after typing in color')
|
assert.notDeepEqual(circle, new_circle, 'Color picker is updated after typing in color')
|
||||||
notDeepEqual(slider, new_slider, 'Color picker is updated after typing in color')
|
assert.notDeepEqual(slider, new_slider, 'Color picker is updated after typing in color')
|
||||||
|
|
||||||
notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
assert.notEqual(previousSwatchColor, getSwatchColor(), 'color in swatch was updated')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.finally(done)
|
.finally(done)
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
// column_select
|
// column_select
|
||||||
test( "column_select check", function(assert) {
|
QUnit.test( "column_select check", assert => {
|
||||||
$('#forms').append('<hr><h1>column_select check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>column_select check</h1><form id="form1"></form>')
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
var defaults = {
|
var defaults = {
|
||||||
|
@ -32,7 +32,7 @@ test( "column_select check", function(assert) {
|
||||||
column_select2: ['aaa', 'bbb'],
|
column_select2: ['aaa', 'bbb'],
|
||||||
column_select3: ['1', '2'],
|
column_select3: ['1', '2'],
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// add and remove selections
|
// add and remove selections
|
||||||
$('[data-name="column_select1"] .js-pool .js-option[data-value="bbb"]').click()
|
$('[data-name="column_select1"] .js-pool .js-option[data-value="bbb"]').click()
|
||||||
|
@ -43,7 +43,7 @@ test( "column_select check", function(assert) {
|
||||||
column_select2: ['aaa', 'bbb'],
|
column_select2: ['aaa', 'bbb'],
|
||||||
column_select3: ['1', '2'],
|
column_select3: ['1', '2'],
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
var done = assert.async();
|
var done = assert.async();
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
@ -58,7 +58,7 @@ test( "column_select check", function(assert) {
|
||||||
column_select2: ['1', 'bbb'],
|
column_select2: ['1', 'bbb'],
|
||||||
column_select3: ['1', '2', 'aaa'],
|
column_select3: ['1', '2', 'aaa'],
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
done();
|
done();
|
||||||
}, 400);
|
}, 400);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
test("core_workflow_condition", function(assert) {
|
QUnit.test("core_workflow_condition", assert => {
|
||||||
var form = $('#forms')
|
var form = $('#forms')
|
||||||
|
|
||||||
var el = $('<div></div>').attr('id', 'form1')
|
var el = $('<div></div>').attr('id', 'form1')
|
||||||
|
@ -14,20 +14,20 @@ test("core_workflow_condition", function(assert) {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
|
|
||||||
equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button')
|
assert.equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button')
|
||||||
el.find('.js-add').click()
|
el.find('.js-add').click()
|
||||||
equal(el.find('.js-remove.is-disabled').length, 0, 'find no disabled button after add')
|
assert.equal(el.find('.js-remove.is-disabled').length, 0, 'find no disabled button after add')
|
||||||
el.find('.js-remove').click()
|
el.find('.js-remove').click()
|
||||||
equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button after remove')
|
assert.equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button after remove')
|
||||||
equal(typeof(App.ControllerForm.params(el).condition_selected), 'object', 'empty element results in a hash')
|
assert.equal(typeof(App.ControllerForm.params(el).condition_selected), 'object', 'empty element results in a hash')
|
||||||
equal(_.isEmpty(App.ControllerForm.params(el).condition_selected), true, 'empty element results are empty')
|
assert.equal(_.isEmpty(App.ControllerForm.params(el).condition_selected), true, 'empty element results are empty')
|
||||||
|
|
||||||
el.find('.js-add').click()
|
el.find('.js-add').click()
|
||||||
el.find("option[value='ticket.owner_id']").prop('selected', true)
|
el.find("option[value='ticket.owner_id']").prop('selected', true)
|
||||||
equal(el.find('.js-preCondition').length, 0, 'pre condition not available')
|
assert.equal(el.find('.js-preCondition').length, 0, 'pre condition not available')
|
||||||
});
|
});
|
||||||
|
|
||||||
test("core_workflow_perform", function(assert) {
|
QUnit.test("core_workflow_perform", assert => {
|
||||||
var form = $('#forms')
|
var form = $('#forms')
|
||||||
|
|
||||||
var el = $('<div></div>').attr('id', 'form1')
|
var el = $('<div></div>').attr('id', 'form1')
|
||||||
|
@ -43,17 +43,17 @@ test("core_workflow_perform", function(assert) {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
|
|
||||||
equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button')
|
assert.equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button')
|
||||||
el.find('.js-add').click()
|
el.find('.js-add').click()
|
||||||
equal(el.find('.js-remove.is-disabled').length, 0, 'find no disabled button after add')
|
assert.equal(el.find('.js-remove.is-disabled').length, 0, 'find no disabled button after add')
|
||||||
el.find('.js-remove').click()
|
el.find('.js-remove').click()
|
||||||
equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button after remove')
|
assert.equal(el.find('.js-remove.is-disabled').length, 1, 'find disabled button after remove')
|
||||||
equal(typeof(App.ControllerForm.params(el).perform), 'object', 'empty element results in a hash')
|
assert.equal(typeof(App.ControllerForm.params(el).perform), 'object', 'empty element results in a hash')
|
||||||
equal(_.isEmpty(App.ControllerForm.params(el).perform), true, 'empty element results are empty')
|
assert.equal(_.isEmpty(App.ControllerForm.params(el).perform), true, 'empty element results are empty')
|
||||||
|
|
||||||
el.find('.js-add').click()
|
el.find('.js-add').click()
|
||||||
el.find("option[value='ticket.owner_id']").prop('selected', true)
|
el.find("option[value='ticket.owner_id']").prop('selected', true)
|
||||||
equal(el.find('.js-preCondition').length, 0, 'pre condition not available')
|
assert.equal(el.find('.js-preCondition').length, 0, 'pre condition not available')
|
||||||
|
|
||||||
el.find('.js-add:last').click()
|
el.find('.js-add:last').click()
|
||||||
el.find("option[value='ticket.group_id']:last").prop('selected', true)
|
el.find("option[value='ticket.group_id']:last").prop('selected', true)
|
||||||
|
@ -67,5 +67,5 @@ test("core_workflow_perform", function(assert) {
|
||||||
attribute_count[$(this).val()] ||= 0
|
attribute_count[$(this).val()] ||= 0
|
||||||
attribute_count[$(this).val()] += 1
|
attribute_count[$(this).val()] += 1
|
||||||
})
|
})
|
||||||
equal(attribute_count['ticket.group_id'], 3, 'hasDuplicateSelector - its possible to select an attribute multiple times')
|
assert.equal(attribute_count['ticket.group_id'], 3, 'hasDuplicateSelector - its possible to select an attribute multiple times')
|
||||||
});
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
test("DateTime timepicker focuses hours", function(assert) {
|
QUnit.test("DateTime timepicker focuses hours", assert => {
|
||||||
var form = $('#forms')
|
var form = $('#forms')
|
||||||
|
|
||||||
var el = $('<div></div>').attr('id', 'form1')
|
var el = $('<div></div>').attr('id', 'form1')
|
||||||
|
@ -16,9 +16,9 @@ test("DateTime timepicker focuses hours", function(assert) {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
|
|
||||||
equal(el.find('[data-name=datetime1] [data-item=date]')[0].disabled, false)
|
assert.equal(el.find('[data-name=datetime1] [data-item=date]')[0].disabled, false)
|
||||||
equal(el.find('[data-name=datetime1] [data-item=time]')[0].disabled, false)
|
assert.equal(el.find('[data-name=datetime1] [data-item=time]')[0].disabled, false)
|
||||||
equal(el.find('[data-name=datetime2] [data-item=date]')[0].disabled, true)
|
assert.equal(el.find('[data-name=datetime2] [data-item=date]')[0].disabled, true)
|
||||||
equal(el.find('[data-name=datetime2] [data-item=time]')[0].disabled, true)
|
assert.equal(el.find('[data-name=datetime2] [data-item=time]')[0].disabled, true)
|
||||||
equal(el.find('[data-name=date3] [data-item=date]')[0].disabled, true)
|
assert.equal(el.find('[data-name=date3] [data-item=date]')[0].disabled, true)
|
||||||
});
|
});
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
// form
|
// form
|
||||||
test('form checks', function() {
|
QUnit.test('form checks', assert => {
|
||||||
|
|
||||||
// use unsorted order to check if the frontend is sorting correctly
|
// use unsorted order to check if the frontend is sorting correctly
|
||||||
App.TicketPriority.refresh([
|
App.TicketPriority.refresh([
|
||||||
|
@ -222,42 +222,42 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// check possible options
|
// check possible options
|
||||||
equal(el.find('[name="priority1_id"] option').length, 3)
|
assert.equal(el.find('[name="priority1_id"] option').length, 3)
|
||||||
equal(el.find('[name="priority2_id"] option').length, 4)
|
assert.equal(el.find('[name="priority2_id"] option').length, 4)
|
||||||
equal(el.find('[name="priority3_id"] option').length, 4)
|
assert.equal(el.find('[name="priority3_id"] option').length, 4)
|
||||||
equal(el.find('[name="priority4_id"] option').length, 4)
|
assert.equal(el.find('[name="priority4_id"] option').length, 4)
|
||||||
equal(el.find('[name="priority5_id"] option').length, 3)
|
assert.equal(el.find('[name="priority5_id"] option').length, 3)
|
||||||
|
|
||||||
// check priority1_id selection order
|
// check priority1_id selection order
|
||||||
equal(el.find('[name="priority1_id"] option:nth-child(1)').text(), '1 low')
|
assert.equal(el.find('[name="priority1_id"] option:nth-child(1)').text(), '1 low')
|
||||||
equal(el.find('[name="priority1_id"] option:nth-child(2)').text(), '3 high')
|
assert.equal(el.find('[name="priority1_id"] option:nth-child(2)').text(), '3 high')
|
||||||
equal(el.find('[name="priority1_id"] option:nth-child(3)').text(), '4 very high')
|
assert.equal(el.find('[name="priority1_id"] option:nth-child(3)').text(), '4 very high')
|
||||||
|
|
||||||
// check priority2_id selection order
|
// check priority2_id selection order
|
||||||
equal(el.find('[name="priority2_id"] option:nth-child(1)').text(), '1 low')
|
assert.equal(el.find('[name="priority2_id"] option:nth-child(1)').text(), '1 low')
|
||||||
equal(el.find('[name="priority2_id"] option:nth-child(2)').text(), '2 normal')
|
assert.equal(el.find('[name="priority2_id"] option:nth-child(2)').text(), '2 normal')
|
||||||
equal(el.find('[name="priority2_id"] option:nth-child(3)').text(), '3 high')
|
assert.equal(el.find('[name="priority2_id"] option:nth-child(3)').text(), '3 high')
|
||||||
equal(el.find('[name="priority2_id"] option:nth-child(4)').text(), '4 very high')
|
assert.equal(el.find('[name="priority2_id"] option:nth-child(4)').text(), '4 very high')
|
||||||
|
|
||||||
// check priority3_id selection order
|
// check priority3_id selection order
|
||||||
equal(el.find('[name="priority3_id"] option:nth-child(1)').text(), '1 low')
|
assert.equal(el.find('[name="priority3_id"] option:nth-child(1)').text(), '1 low')
|
||||||
equal(el.find('[name="priority3_id"] option:nth-child(2)').text(), '2 normal')
|
assert.equal(el.find('[name="priority3_id"] option:nth-child(2)').text(), '2 normal')
|
||||||
equal(el.find('[name="priority3_id"] option:nth-child(3)').text(), '3 high')
|
assert.equal(el.find('[name="priority3_id"] option:nth-child(3)').text(), '3 high')
|
||||||
equal(el.find('[name="priority3_id"] option:nth-child(4)').text(), '4 very high')
|
assert.equal(el.find('[name="priority3_id"] option:nth-child(4)').text(), '4 very high')
|
||||||
|
|
||||||
// check priority4_id selection order
|
// check priority4_id selection order
|
||||||
equal(el.find('[name="priority4_id"] option:nth-child(1)').text(), '1 low')
|
assert.equal(el.find('[name="priority4_id"] option:nth-child(1)').text(), '1 low')
|
||||||
equal(el.find('[name="priority4_id"] option:nth-child(2)').text(), '2 normal')
|
assert.equal(el.find('[name="priority4_id"] option:nth-child(2)').text(), '2 normal')
|
||||||
equal(el.find('[name="priority4_id"] option:nth-child(3)').text(), '3 high')
|
assert.equal(el.find('[name="priority4_id"] option:nth-child(3)').text(), '3 high')
|
||||||
equal(el.find('[name="priority4_id"] option:nth-child(4)').text(), '4 very high')
|
assert.equal(el.find('[name="priority4_id"] option:nth-child(4)').text(), '4 very high')
|
||||||
|
|
||||||
// check priority5_id selection order
|
// check priority5_id selection order
|
||||||
equal(el.find('[name="priority5_id"] option:nth-child(1)').text(), '1 low')
|
assert.equal(el.find('[name="priority5_id"] option:nth-child(1)').text(), '1 low')
|
||||||
equal(el.find('[name="priority5_id"] option:nth-child(2)').text(), '3 high')
|
assert.equal(el.find('[name="priority5_id"] option:nth-child(2)').text(), '3 high')
|
||||||
equal(el.find('[name="priority5_id"] option:nth-child(3)').text(), '4 very high')
|
assert.equal(el.find('[name="priority5_id"] option:nth-child(3)').text(), '4 very high')
|
||||||
|
|
||||||
// change sla times
|
// change sla times
|
||||||
el.find('[name="first_response_time_in_text"]').val('0:30').trigger('blur')
|
el.find('[name="first_response_time_in_text"]').val('0:30').trigger('blur')
|
||||||
|
@ -325,7 +325,7 @@ test('form checks', function() {
|
||||||
update_time_enabled: undefined,
|
update_time_enabled: undefined,
|
||||||
update_time_in_text: '',
|
update_time_in_text: '',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
/* empty params or defaults */
|
/* empty params or defaults */
|
||||||
$('#forms').append('<hr><h1>form condition check</h1><form id="form2"></form>')
|
$('#forms').append('<hr><h1>form condition check</h1><form id="form2"></form>')
|
||||||
|
@ -354,7 +354,7 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check');
|
assert.deepEqual(params, test_params, 'form param check');
|
||||||
|
|
||||||
/* with params or defaults */
|
/* with params or defaults */
|
||||||
$('#forms').append('<hr><h1>form 3</h1><form id="form3"></form>')
|
$('#forms').append('<hr><h1>form 3</h1><form id="form3"></form>')
|
||||||
|
@ -492,7 +492,7 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// change selector
|
// change selector
|
||||||
el.find('[name="condition::ticket.priority_id::value"]').closest('.js-filterElement').find('.js-remove').click()
|
el.find('[name="condition::ticket.priority_id::value"]').closest('.js-filterElement').find('.js-remove').click()
|
||||||
|
@ -554,7 +554,7 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// change selector
|
// change selector
|
||||||
el.find('[name="executions::notification.email::subject"]').closest('.js-filterElement').find('.js-remove').click()
|
el.find('[name="executions::notification.email::subject"]').closest('.js-filterElement').find('.js-remove').click()
|
||||||
|
@ -608,7 +608,7 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// change selector
|
// change selector
|
||||||
el.find('.js-attributeSelector').last().find('select').val('notification.email').trigger('change')
|
el.find('.js-attributeSelector').last().find('select').val('notification.email').trigger('change')
|
||||||
|
@ -668,7 +668,7 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
/* with params or defaults */
|
/* with params or defaults */
|
||||||
$('#forms').append('<hr><h1>form 4</h1><form id="form4"></form>')
|
$('#forms').append('<hr><h1>form 4</h1><form id="form4"></form>')
|
||||||
|
@ -720,7 +720,7 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form 5</h1><form id="form5"></form>')
|
$('#forms').append('<hr><h1>form 5</h1><form id="form5"></form>')
|
||||||
var el = $('#form5')
|
var el = $('#form5')
|
||||||
|
@ -770,5 +770,5 @@ test('form checks', function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form article body param check')
|
assert.deepEqual(params, test_params, 'form article body param check')
|
||||||
});
|
});
|
59
public/assets/tests/qunit/form_find.js
Normal file
59
public/assets/tests/qunit/form_find.js
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
|
||||||
|
// form
|
||||||
|
QUnit.test( "find form check", assert => {
|
||||||
|
|
||||||
|
$('#forms').append('<hr><h1>find form check</h1><form id="form1"></form>')
|
||||||
|
var form1 = App.ControllerForm.findForm($('#form1'))
|
||||||
|
assert.equal(form1.is('form'), true)
|
||||||
|
|
||||||
|
$('#forms').append('<hr><h1>find form check</h1><form id="form2"><input class="js-input" value="test 123"></form>')
|
||||||
|
var form2 = App.ControllerForm.findForm($('#form2 .js-input'))
|
||||||
|
assert.equal(form2.is('form'), true)
|
||||||
|
|
||||||
|
$('#forms').append('<hr><h1>find form check</h1><form id="form3"><input class="js-input" value="test 123"><button class="js-button">text</button></form>')
|
||||||
|
var form3 = App.ControllerForm.findForm($('#form3 .js-button'))
|
||||||
|
assert.equal(form3.is('form'), true)
|
||||||
|
App.ControllerForm.disable($('#form3 .js-button'))
|
||||||
|
assert.equal($('#form3 .js-button').prop('readonly'), true)
|
||||||
|
assert.equal($('#form3 .js-button').prop('disabled'), true)
|
||||||
|
assert.equal($('#form3 .js-input').prop('readonly'), true)
|
||||||
|
assert.equal($('#form3 .js-input').prop('disabled'), false)
|
||||||
|
|
||||||
|
App.ControllerForm.enable($('#form3 .js-button'))
|
||||||
|
assert.equal($('#form3 .js-button').prop('readonly'), false)
|
||||||
|
assert.equal($('#form3 .js-button').prop('disabled'), false)
|
||||||
|
assert.equal($('#form3 .js-input').prop('readonly'), false)
|
||||||
|
assert.equal($('#form3 .js-input').prop('disabled'), false)
|
||||||
|
|
||||||
|
$('#forms').append('<hr><h1>find form check by only disable button</h1><form id="form31"><input class="js-input" value="test 123"><button class="js-button">text</button></form>')
|
||||||
|
var form31 = App.ControllerForm.findForm($('#form31 .js-button'))
|
||||||
|
|
||||||
|
App.ControllerForm.disable($('#form31 .js-button'), 'button')
|
||||||
|
|
||||||
|
assert.equal($('#form31 .js-button').prop('readonly'), true)
|
||||||
|
assert.equal($('#form31 .js-button').prop('disabled'), true)
|
||||||
|
assert.equal($('#form31 .js-input').prop('readonly'), false)
|
||||||
|
assert.equal($('#form31 .js-input').prop('disabled'), false)
|
||||||
|
|
||||||
|
App.ControllerForm.enable($('#form31 .js-button'))
|
||||||
|
assert.equal($('#form31 .js-button').prop('readonly'), false)
|
||||||
|
assert.equal($('#form31 .js-button').prop('disabled'), false)
|
||||||
|
assert.equal($('#form31 .js-input').prop('readonly'), false)
|
||||||
|
assert.equal($('#form31 .js-input').prop('disabled'), false)
|
||||||
|
|
||||||
|
$('#forms').append('<hr><h1>find form check</h1><div id="form4"><input class="js-input" value="test 123"><button class="js-button">text</button></div>')
|
||||||
|
var form4 = App.ControllerForm.findForm($('#form4 .js-button'))
|
||||||
|
assert.equal(form4.is('form'), false)
|
||||||
|
App.ControllerForm.disable($('#form4 .js-button'))
|
||||||
|
assert.equal($('#form4 .js-button').prop('readonly'), true)
|
||||||
|
assert.equal($('#form4 .js-button').prop('disabled'), true)
|
||||||
|
assert.equal($('#form4 .js-input').prop('readonly'), false)
|
||||||
|
assert.equal($('#form4 .js-input').prop('disabled'), false)
|
||||||
|
|
||||||
|
App.ControllerForm.enable($('#form4 .js-button'))
|
||||||
|
assert.equal($('#form4 .js-button').prop('readonly'), false)
|
||||||
|
assert.equal($('#form4 .js-button').prop('disabled'), false)
|
||||||
|
assert.equal($('#form4 .js-input').prop('readonly'), false)
|
||||||
|
assert.equal($('#form4 .js-input').prop('disabled'), false)
|
||||||
|
|
||||||
|
});
|
|
@ -1,5 +1,5 @@
|
||||||
// searchable_select
|
// searchable_select
|
||||||
test( "searchable_select check", function() {
|
QUnit.test( "searchable_select check", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>searchable_select check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>searchable_select check</h1><form id="form1"></form>')
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
|
@ -70,16 +70,16 @@ test( "searchable_select check", function() {
|
||||||
searchable_select3: '',
|
searchable_select3: '',
|
||||||
searchable_select4: 'ccc',
|
searchable_select4: 'ccc',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// change selection
|
// change selection
|
||||||
$('[name="searchable_select1"].js-shadow + .js-input').focus().val('').trigger('input')
|
$('[name="searchable_select1"].js-shadow + .js-input').focus().val('').trigger('input')
|
||||||
var $element = $('[name="searchable_select1"]').closest('.searchableSelect').find('.js-optionsList')
|
var $element = $('[name="searchable_select1"]').closest('.searchableSelect').find('.js-optionsList')
|
||||||
var entries = $element.find('li:not(.is-hidden)').length
|
var entries = $element.find('li:not(.is-hidden)').length
|
||||||
equal(entries, 3, 'dropdown count')
|
assert.equal(entries, 3, 'dropdown count')
|
||||||
$('[name="searchable_select1"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
|
$('[name="searchable_select1"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
|
||||||
var entries = $element.find('li:not(.is-hidden)').length
|
var entries = $element.find('li:not(.is-hidden)').length
|
||||||
equal(entries, 1, 'dropdown count')
|
assert.equal(entries, 1, 'dropdown count')
|
||||||
$element.find('li:not(.is-hidden)').first().click()
|
$element.find('li:not(.is-hidden)').first().click()
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
test_params = {
|
test_params = {
|
||||||
|
@ -88,15 +88,15 @@ test( "searchable_select check", function() {
|
||||||
searchable_select3: '',
|
searchable_select3: '',
|
||||||
searchable_select4: 'ccc',
|
searchable_select4: 'ccc',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('[name="searchable_select2"].js-shadow + .js-input').focus().val('').trigger('input')
|
$('[name="searchable_select2"].js-shadow + .js-input').focus().val('').trigger('input')
|
||||||
var $element = $('[name="searchable_select2"]').closest('.searchableSelect').find('.js-optionsList')
|
var $element = $('[name="searchable_select2"]').closest('.searchableSelect').find('.js-optionsList')
|
||||||
var entries = $element.find('li:not(.is-hidden)').length
|
var entries = $element.find('li:not(.is-hidden)').length
|
||||||
equal(entries, 3, 'dropdown count')
|
assert.equal(entries, 3, 'dropdown count')
|
||||||
$('[name="searchable_select2"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
|
$('[name="searchable_select2"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
|
||||||
var entries = $element.find('li:not(.is-hidden)').length
|
var entries = $element.find('li:not(.is-hidden)').length
|
||||||
equal(entries, 1, 'dropdown count')
|
assert.equal(entries, 1, 'dropdown count')
|
||||||
$element.find('li:not(.is-hidden)').first().click()
|
$element.find('li:not(.is-hidden)').first().click()
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
|
@ -106,20 +106,20 @@ test( "searchable_select check", function() {
|
||||||
searchable_select3: '',
|
searchable_select3: '',
|
||||||
searchable_select4: 'ccc',
|
searchable_select4: 'ccc',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('').trigger('input')
|
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('').trigger('input')
|
||||||
var $element = $('[name="searchable_select3"]').closest('.searchableSelect').find('.js-optionsList')
|
var $element = $('[name="searchable_select3"]').closest('.searchableSelect').find('.js-optionsList')
|
||||||
var entries = $element.find('li:not(.is-hidden)').length
|
var entries = $element.find('li:not(.is-hidden)').length
|
||||||
equal(entries, 3, 'dropdown count')
|
assert.equal(entries, 3, 'dropdown count')
|
||||||
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
|
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('ccc display').trigger('input')
|
||||||
var entries = $element.find('li:not(.is-hidden)').length
|
var entries = $element.find('li:not(.is-hidden)').length
|
||||||
equal(entries, 1, 'dropdown count')
|
assert.equal(entries, 1, 'dropdown count')
|
||||||
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('unknown value').trigger('input')
|
$('[name="searchable_select3"].js-shadow + .js-input').focus().val('unknown value').trigger('input')
|
||||||
var entries = $element.find('li:not(.is-hidden)').length
|
var entries = $element.find('li:not(.is-hidden)').length
|
||||||
equal(entries, 3, 'dropdown count')
|
assert.equal(entries, 3, 'dropdown count')
|
||||||
var entries = $element.find('li.is-active').length
|
var entries = $element.find('li.is-active').length
|
||||||
equal(entries, 0, 'active count')
|
assert.equal(entries, 0, 'active count')
|
||||||
|
|
||||||
var e = $.Event('keydown')
|
var e = $.Event('keydown')
|
||||||
e.which = 13 //enter
|
e.which = 13 //enter
|
||||||
|
@ -133,7 +133,7 @@ test( "searchable_select check", function() {
|
||||||
searchable_select3: 'unknown value',
|
searchable_select3: 'unknown value',
|
||||||
searchable_select4: 'ccc',
|
searchable_select4: 'ccc',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>searchable_select check for .js-input field values</h1><form id="form2"></form>')
|
$('#forms').append('<hr><h1>searchable_select check for .js-input field values</h1><form id="form2"></form>')
|
||||||
var el = $('#form2')
|
var el = $('#form2')
|
||||||
|
@ -179,14 +179,14 @@ test( "searchable_select check", function() {
|
||||||
searchable_select1: 'ccc::aaa',
|
searchable_select1: 'ccc::aaa',
|
||||||
searchable_select2: 'ccc::ccc',
|
searchable_select2: 'ccc::ccc',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
equal(el.find('[name="searchable_select1"].js-shadow + .js-input').val(), 'aaa display L2', 'verify shown input')
|
assert.equal(el.find('[name="searchable_select1"].js-shadow + .js-input').val(), 'aaa display L2', 'verify shown input')
|
||||||
equal(el.find('[name="searchable_select2"].js-shadow + .js-input').val(), 'ccc display L2', 'verify shown input')
|
assert.equal(el.find('[name="searchable_select2"].js-shadow + .js-input').val(), 'ccc display L2', 'verify shown input')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
asyncTest("searchable_select submenu and option list check", function() {
|
QUnit.test("searchable_select submenu and option list check", assert => {
|
||||||
expect(3);
|
var done = assert.async()
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>searchable_select check for special charaters values</h1><form id="form3"></form>')
|
$('#forms').append('<hr><h1>searchable_select check for special charaters values</h1><form id="form3"></form>')
|
||||||
var el = $('#form3')
|
var el = $('#form3')
|
||||||
|
@ -232,10 +232,10 @@ asyncTest("searchable_select submenu and option list check", function() {
|
||||||
var optionsList = el.find(".searchableSelect .js-optionsList")
|
var optionsList = el.find(".searchableSelect .js-optionsList")
|
||||||
|
|
||||||
setTimeout( () => {
|
setTimeout( () => {
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
equal(optionsSubmenu.is('[hidden]'), false, 'options submenu menu not hidden')
|
assert.equal(optionsSubmenu.is('[hidden]'), false, 'options submenu menu not hidden')
|
||||||
equal(optionsList.is('[hidden]'), true, 'options list is hidden')
|
assert.equal(optionsList.is('[hidden]'), true, 'options list is hidden')
|
||||||
start();
|
done()
|
||||||
}, 300)
|
}, 300)
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
test("form elements not rendered", function(assert) {
|
QUnit.test("form elements not rendered", assert => {
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
||||||
|
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
|
@ -14,6 +14,6 @@ test("form elements not rendered", function(assert) {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
|
|
||||||
ok(el.find('input[name=shown]').get(0), 'control element is visible')
|
assert.ok(el.find('input[name=shown]').get(0), 'control element is visible')
|
||||||
notOk(el.find('input[name=hidden]').get(0), 'element with skipRendering is not shown')
|
assert.notOk(el.find('input[name=hidden]').get(0), 'element with skipRendering is not shown')
|
||||||
});
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
test("form SLA times highlights first row and sets 2:00 by default for new item", function(assert) {
|
QUnit.test("form SLA times highlights first row and sets 2:00 by default for new item", function(assert) {
|
||||||
$('#forms').append('<hr><h1>SLA with defaults</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>SLA with defaults</h1><form id="form1"></form>')
|
||||||
|
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
|
@ -13,8 +13,8 @@ test("form SLA times highlights first row and sets 2:00 by default for new item"
|
||||||
|
|
||||||
var row = el.find('.sla_times tbody > tr:first')
|
var row = el.find('.sla_times tbody > tr:first')
|
||||||
|
|
||||||
ok(row.hasClass('is-active'))
|
assert.ok(row.hasClass('is-active'))
|
||||||
equal(row.find('input[data-name=first_response_time]').val(), '02:00')
|
assert.equal(row.find('input[data-name=first_response_time]').val(), '02:00')
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>SLA with empty times</h1><form id="form2"></form>')
|
$('#forms').append('<hr><h1>SLA with empty times</h1><form id="form2"></form>')
|
||||||
|
|
||||||
|
@ -31,11 +31,11 @@ test("form SLA times highlights first row and sets 2:00 by default for new item"
|
||||||
|
|
||||||
var row = el.find('.sla_times tbody > tr:first')
|
var row = el.find('.sla_times tbody > tr:first')
|
||||||
|
|
||||||
notOk(row.hasClass('is-active'))
|
assert.notOk(row.hasClass('is-active'))
|
||||||
equal(row.find('input[data-name=first_response_time]').val(), '')
|
assert.equal(row.find('input[data-name=first_response_time]').val(), '')
|
||||||
});
|
});
|
||||||
|
|
||||||
test("form SLA times highlights and shows settings accordingly", function(assert) {
|
QUnit.test("form SLA times highlights and shows settings accordingly", function(assert) {
|
||||||
$('#forms').append('<hr><h1>SLA with non-first time set</h1><form id="form3"></form>')
|
$('#forms').append('<hr><h1>SLA with non-first time set</h1><form id="form3"></form>')
|
||||||
|
|
||||||
var el = $('#form3')
|
var el = $('#form3')
|
||||||
|
@ -53,13 +53,13 @@ test("form SLA times highlights and shows settings accordingly", function(assert
|
||||||
var firstRow = el.find('.sla_times tbody > tr:first')
|
var firstRow = el.find('.sla_times tbody > tr:first')
|
||||||
var secondRow = el.find('.sla_times tbody > tr:nth-child(2)')
|
var secondRow = el.find('.sla_times tbody > tr:nth-child(2)')
|
||||||
|
|
||||||
notOk(firstRow.hasClass('is-active'))
|
assert.notOk(firstRow.hasClass('is-active'))
|
||||||
equal(firstRow.find('input[data-name=first_response_time]').val(), '')
|
assert.equal(firstRow.find('input[data-name=first_response_time]').val(), '')
|
||||||
ok(secondRow.hasClass('is-active'))
|
assert.ok(secondRow.hasClass('is-active'))
|
||||||
equal(secondRow.find('input[data-name=update_time]').val(), '04:00')
|
assert.equal(secondRow.find('input[data-name=update_time]').val(), '04:00')
|
||||||
})
|
})
|
||||||
|
|
||||||
test("form SLA times clears field instead of 00:00", function(assert) {
|
QUnit.test("form SLA times clears field instead of 00:00", function(assert) {
|
||||||
$('#forms').append('<hr><h1>SLA placeholder instead of 00:00</h1><form id="form5"></form>')
|
$('#forms').append('<hr><h1>SLA placeholder instead of 00:00</h1><form id="form5"></form>')
|
||||||
|
|
||||||
var el = $('#form5')
|
var el = $('#form5')
|
||||||
|
@ -77,5 +77,5 @@ test("form SLA times clears field instead of 00:00", function(assert) {
|
||||||
|
|
||||||
input.val('asd').blur()
|
input.val('asd').blur()
|
||||||
|
|
||||||
equal(input.val(), '', 'shows placeholder')
|
assert.equal(input.val(), '', 'shows placeholder')
|
||||||
});
|
});
|
|
@ -1,5 +1,5 @@
|
||||||
// ticket_perform_action
|
// ticket_perform_action
|
||||||
test( "ticket_perform_action check", function(assert) {
|
QUnit.test( "ticket_perform_action check", assert => {
|
||||||
|
|
||||||
App.TicketPriority.refresh([
|
App.TicketPriority.refresh([
|
||||||
{
|
{
|
||||||
|
@ -120,7 +120,7 @@ test( "ticket_perform_action check", function(assert) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// add email notification
|
// add email notification
|
||||||
$('[data-attribute-name="ticket_perform_action3"] .js-add').click()
|
$('[data-attribute-name="ticket_perform_action3"] .js-add').click()
|
||||||
|
@ -164,7 +164,7 @@ test( "ticket_perform_action check", function(assert) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// remove recipient
|
// remove recipient
|
||||||
$('[data-attribute-name="ticket_perform_action2"] .js-setNotification .js-recipient .js-remove.js-option[data-value="ticket_owner"]').click()
|
$('[data-attribute-name="ticket_perform_action2"] .js-setNotification .js-recipient .js-remove.js-option[data-value="ticket_owner"]').click()
|
||||||
|
@ -204,7 +204,7 @@ test( "ticket_perform_action check", function(assert) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// set notification to internal
|
// set notification to internal
|
||||||
$('[data-attribute-name="ticket_perform_action2"] .js-internal select').val('true').trigger('change')
|
$('[data-attribute-name="ticket_perform_action2"] .js-internal select').val('true').trigger('change')
|
||||||
|
@ -244,7 +244,7 @@ test( "ticket_perform_action check", function(assert) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
// add pending time
|
// add pending time
|
||||||
$('[data-attribute-name="ticket_perform_action3"] .js-add').last().click()
|
$('[data-attribute-name="ticket_perform_action3"] .js-add').last().click()
|
||||||
|
@ -302,7 +302,7 @@ test( "ticket_perform_action check", function(assert) {
|
||||||
|
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
done()
|
done()
|
||||||
}, 0);
|
}, 0);
|
||||||
|
|
||||||
|
@ -352,11 +352,11 @@ test( "ticket_perform_action check", function(assert) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
});
|
});
|
||||||
|
|
||||||
// Test for backwards compatibility after issue is fixed https://github.com/zammad/zammad/issues/2782
|
// Test for backwards compatibility after issue is fixed https://github.com/zammad/zammad/issues/2782
|
||||||
test( "ticket_perform_action backwards check after issue #2782", function() {
|
QUnit.test( "ticket_perform_action backwards check after issue #2782", assert => {
|
||||||
$('#forms').append('<hr><h1>ticket_perform_action check</h1><form id="form2"></form>')
|
$('#forms').append('<hr><h1>ticket_perform_action check</h1><form id="form2"></form>')
|
||||||
|
|
||||||
var el = $('#form2')
|
var el = $('#form2')
|
||||||
|
@ -401,10 +401,10 @@ test( "ticket_perform_action backwards check after issue #2782", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ticket_perform_action rows manipulation", function() {
|
QUnit.test( "ticket_perform_action rows manipulation", assert => {
|
||||||
App.TicketPriority.refresh([
|
App.TicketPriority.refresh([
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
|
@ -461,29 +461,29 @@ test( "ticket_perform_action rows manipulation", function() {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
})
|
})
|
||||||
|
|
||||||
equal(true, true)
|
assert.equal(true, true)
|
||||||
|
|
||||||
var selector = '[data-attribute-name="ticket_perform_action99"] '
|
var selector = '[data-attribute-name="ticket_perform_action99"] '
|
||||||
|
|
||||||
$(selector + '.js-remove').click()
|
$(selector + '.js-remove').click()
|
||||||
|
|
||||||
equal($(selector + '.js-filterElement').length, 1, 'prevents removing single initial row')
|
assert.equal($(selector + '.js-filterElement').length, 1, 'prevents removing single initial row')
|
||||||
|
|
||||||
$(selector + '.js-add').click()
|
$(selector + '.js-add').click()
|
||||||
|
|
||||||
equal($(selector + '.js-filterElement').length, 2, 'adds 2nd row')
|
assert.equal($(selector + '.js-filterElement').length, 2, 'adds 2nd row')
|
||||||
|
|
||||||
$(selector + ' .js-remove:last').click()
|
$(selector + ' .js-remove:last').click()
|
||||||
|
|
||||||
equal($(selector + '.js-filterElement').length, 1, 'removes 2nd row')
|
assert.equal($(selector + '.js-filterElement').length, 1, 'removes 2nd row')
|
||||||
|
|
||||||
$(selector + '.js-remove:last').click()
|
$(selector + '.js-remove:last').click()
|
||||||
|
|
||||||
equal($(selector + ' .js-filterElement').length, 1, 'prevents removing last row')
|
assert.equal($(selector + ' .js-filterElement').length, 1, 'prevents removing last row')
|
||||||
});
|
});
|
||||||
|
|
||||||
// Test for backwards compatibility after PR https://github.com/zammad/zammad/pull/2862
|
// Test for backwards compatibility after PR https://github.com/zammad/zammad/pull/2862
|
||||||
test( "ticket_perform_action backwards check after PR#2862", function() {
|
QUnit.test( "ticket_perform_action backwards check after PR#2862", assert => {
|
||||||
$('#forms').append('<hr><h1>ticket_perform_action check</h1><form id="form3"></form>')
|
$('#forms').append('<hr><h1>ticket_perform_action check</h1><form id="form3"></form>')
|
||||||
|
|
||||||
var el = $('#form3')
|
var el = $('#form3')
|
||||||
|
@ -522,10 +522,10 @@ test( "ticket_perform_action backwards check after PR#2862", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ticket_perform_action orphan time fields", function() {
|
QUnit.test( "ticket_perform_action orphan time fields", assert => {
|
||||||
$('#forms').append('<hr><h1>ticket_perform_action orphan time fields</h1><form id="form4"></form>')
|
$('#forms').append('<hr><h1>ticket_perform_action orphan time fields</h1><form id="form4"></form>')
|
||||||
|
|
||||||
var el = $('#form4')
|
var el = $('#form4')
|
||||||
|
@ -558,10 +558,10 @@ test( "ticket_perform_action orphan time fields", function() {
|
||||||
// change to another attribute
|
// change to another attribute
|
||||||
el.find('select:first').val('ticket.tags').trigger('change')
|
el.find('select:first').val('ticket.tags').trigger('change')
|
||||||
|
|
||||||
equal(el.find('.js-valueRangeSelector').length, 0)
|
assert.equal(el.find('.js-valueRangeSelector').length, 0)
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ticket_perform_action check possible owner selection", function() {
|
QUnit.test( "ticket_perform_action check possible owner selection", assert => {
|
||||||
$('#forms').append('<hr><h1>ticket_perform_action check possible owner selection</h1><form id="form5"></form>')
|
$('#forms').append('<hr><h1>ticket_perform_action check possible owner selection</h1><form id="form5"></form>')
|
||||||
|
|
||||||
var el = $('#form5')
|
var el = $('#form5')
|
||||||
|
@ -601,7 +601,7 @@ test( "ticket_perform_action check possible owner selection", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
el.find('[name="ticket_perform_action5::ticket.owner_id::pre_condition"]').val('specific').trigger('change')
|
el.find('[name="ticket_perform_action5::ticket.owner_id::pre_condition"]').val('specific').trigger('change')
|
||||||
|
|
||||||
|
@ -616,11 +616,11 @@ test( "ticket_perform_action check possible owner selection", function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ticket_perform_action check when there's no available webhook", function() {
|
QUnit.test( "ticket_perform_action check when there's no available webhook", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>ticket_perform_action check when there\'s no available webhook</h1><form id="form6"></form>')
|
$('#forms').append('<hr><h1>ticket_perform_action check when there\'s no available webhook</h1><form id="form6"></form>')
|
||||||
var el = $('#form6')
|
var el = $('#form6')
|
||||||
|
@ -649,14 +649,14 @@ test( "ticket_perform_action check when there's no available webhook", function(
|
||||||
})
|
})
|
||||||
|
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
deepEqual(params, {}, 'form param check')
|
assert.deepEqual(params, {}, 'form param check')
|
||||||
|
|
||||||
var testNoticeMessage = 'No available webhook, please create a new one or activate an existing one at "Manage > Webhook"'
|
var testNoticeMessage = 'No available webhook, please create a new one or activate an existing one at "Manage > Webhook"'
|
||||||
var noticeMessage = el.find('.controls.js-webhooks div').text()
|
var noticeMessage = el.find('.controls.js-webhooks div').text()
|
||||||
equal(noticeMessage, testNoticeMessage, 'form shows message when webhook is not available')
|
assert.equal(noticeMessage, testNoticeMessage, 'form shows message when webhook is not available')
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "ticket_perform_action check when there's an available webhook", function() {
|
QUnit.test( "ticket_perform_action check when there's an available webhook", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>ticket_perform_action check when there\'s an available webhook</h1><form id="form7"></form>')
|
$('#forms').append('<hr><h1>ticket_perform_action check when there\'s an available webhook</h1><form id="form7"></form>')
|
||||||
var el = $('#form7')
|
var el = $('#form7')
|
||||||
|
@ -702,12 +702,12 @@ test( "ticket_perform_action check when there's an available webhook", function(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
var testNoticeMessage = 'No available webhook, please create a new one or activate an existing one at "Manage > Webhook"'
|
var testNoticeMessage = 'No available webhook, please create a new one or activate an existing one at "Manage > Webhook"'
|
||||||
var noticeMessage = el.find('.controls.js-webhooks').text()
|
var noticeMessage = el.find('.controls.js-webhooks').text()
|
||||||
notEqual(noticeMessage, testNoticeMessage, 'form does not show notice message when webhook is available')
|
assert.notEqual(noticeMessage, testNoticeMessage, 'form does not show notice message when webhook is available')
|
||||||
|
|
||||||
var noticeMessage = el.find('.controls.js-webhooks select option').eq(1).text()
|
var noticeMessage = el.find('.controls.js-webhooks select option').eq(1).text()
|
||||||
equal(noticeMessage, 'Webhook test (https://target.example.com/webhook)', 'form shows available webhook when webhook is available')
|
assert.equal(noticeMessage, 'Webhook test (https://target.example.com/webhook)', 'form shows available webhook when webhook is available')
|
||||||
});
|
});
|
|
@ -1,5 +1,4 @@
|
||||||
|
QUnit.test("form elements check", assert => {
|
||||||
test("form elements check", function() {
|
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
|
@ -16,7 +15,7 @@ test("form elements check", function() {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
|
|
||||||
equal('Run every Monday at 00:00 in UTC time', el.find('.js-timerResult').text())
|
assert.equal('Run every Monday at 00:00 in UTC time', el.find('.js-timerResult').text())
|
||||||
|
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
|
@ -67,7 +66,7 @@ test("form elements check", function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form2"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form2"></form>')
|
||||||
var el = $('#form2')
|
var el = $('#form2')
|
||||||
|
@ -101,7 +100,7 @@ test("form elements check", function() {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
|
|
||||||
equal('Run every Monday and Friday at 00:00, 00:10, 00:50, 10:00, 10:10, 10:50, 16:00, 16:10 and 16:50 in UTC time', el.find('.js-timerResult').text())
|
assert.equal('Run every Monday and Friday at 00:00, 00:10, 00:50, 10:00, 10:10, 10:50, 16:00, 16:10 and 16:50 in UTC time', el.find('.js-timerResult').text())
|
||||||
|
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
|
@ -152,13 +151,13 @@ test("form elements check", function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('#form2 .js-day [data-value="Sat"]').click()
|
$('#form2 .js-day [data-value="Sat"]').click()
|
||||||
$('#form2 .js-hour [data-value="16"]').click()
|
$('#form2 .js-hour [data-value="16"]').click()
|
||||||
$('#form2 .js-minute [data-value="10"]').click()
|
$('#form2 .js-minute [data-value="10"]').click()
|
||||||
|
|
||||||
equal('Run every Monday, Friday and Saturday at 00:00, 00:50, 10:00 and 10:50 in UTC time', el.find('.js-timerResult').text())
|
assert.equal('Run every Monday, Friday and Saturday at 00:00, 00:50, 10:00 and 10:50 in UTC time', el.find('.js-timerResult').text())
|
||||||
|
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
|
@ -209,6 +208,6 @@ test("form elements check", function() {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
test("form elements check", function() {
|
QUnit.test("form elements check", assert => {
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form1"></form>')
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
new App.ControllerForm({
|
new App.ControllerForm({
|
||||||
|
@ -54,13 +54,13 @@ test("form elements check", function() {
|
||||||
},
|
},
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
equal(el.find('[name="tree_select"]').val(), '', 'check tree_select value');
|
assert.equal(el.find('[name="tree_select"]').val(), '', 'check tree_select value');
|
||||||
equal(el.find('[name="tree_select"]').closest('.searchableSelect').find('.js-input').val(), '', 'check tree_select .js-input value');
|
assert.equal(el.find('[name="tree_select"]').closest('.searchableSelect').find('.js-input').val(), '', 'check tree_select .js-input value');
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
tree_select: ''
|
tree_select: ''
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form2"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form2"></form>')
|
||||||
var el = $('#form2')
|
var el = $('#form2')
|
||||||
|
@ -119,13 +119,13 @@ test("form elements check", function() {
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
|
|
||||||
equal(el.find('[name="tree_select"]').val(), 'aa', 'check tree_select value');
|
assert.equal(el.find('[name="tree_select"]').val(), 'aa', 'check tree_select value');
|
||||||
equal(el.find('[name="tree_select"]').closest('.searchableSelect').find('.js-input').val(), 'yes', 'check tree_select .js-input value');
|
assert.equal(el.find('[name="tree_select"]').closest('.searchableSelect').find('.js-input').val(), 'yes', 'check tree_select .js-input value');
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
tree_select: 'aa'
|
tree_select: 'aa'
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form3"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form3"></form>')
|
||||||
var el = $('#form3')
|
var el = $('#form3')
|
||||||
|
@ -183,13 +183,13 @@ test("form elements check", function() {
|
||||||
},
|
},
|
||||||
autofocus: true
|
autofocus: true
|
||||||
});
|
});
|
||||||
equal(el.find('[name="tree_select"]').val(), 'aa::aab', 'check tree_select value');
|
assert.equal(el.find('[name="tree_select"]').val(), 'aa::aab', 'check tree_select value');
|
||||||
equal(el.find('[name="tree_select"]').closest('.searchableSelect').find('.js-input').val(), 'yes2', 'check tree_select .js-input value');
|
assert.equal(el.find('[name="tree_select"]').closest('.searchableSelect').find('.js-input').val(), 'yes2', 'check tree_select .js-input value');
|
||||||
var params = App.ControllerForm.params(el)
|
var params = App.ControllerForm.params(el)
|
||||||
var test_params = {
|
var test_params = {
|
||||||
tree_select: 'aa::aab'
|
tree_select: 'aa::aab'
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form4"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form4"></form>')
|
||||||
var el = $('#form4')
|
var el = $('#form4')
|
||||||
|
@ -265,13 +265,12 @@ test("form elements check", function() {
|
||||||
var test_params = {
|
var test_params = {
|
||||||
tree_select_search: ['aa::aab', 'aa::aac::33', 'bb'],
|
tree_select_search: ['aa::aab', 'aa::aac::33', 'bb'],
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
asyncTest("searchable_select submenu and option list check", function() {
|
QUnit.test("searchable_select submenu and option list check", assert => {
|
||||||
expect(3);
|
var done = assert.async()
|
||||||
|
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form elements check</h1><form id="form5"></form>')
|
$('#forms').append('<hr><h1>form elements check</h1><form id="form5"></form>')
|
||||||
var el = $('#form5')
|
var el = $('#form5')
|
||||||
|
@ -344,10 +343,11 @@ asyncTest("searchable_select submenu and option list check", function() {
|
||||||
var optionsList = el.find(".searchableSelect .js-optionsList")
|
var optionsList = el.find(".searchableSelect .js-optionsList")
|
||||||
|
|
||||||
setTimeout( () => {
|
setTimeout( () => {
|
||||||
deepEqual(params, test_params, 'form param check')
|
assert.deepEqual(params, test_params, 'form param check')
|
||||||
equal(optionsSubmenu.is('[hidden]'), false, 'options submenu menu not hidden')
|
assert.equal(optionsSubmenu.is('[hidden]'), false, 'options submenu menu not hidden')
|
||||||
equal(optionsList.is('[hidden]'), true, 'options list is hidden')
|
assert.equal(optionsList.is('[hidden]'), true, 'options list is hidden')
|
||||||
start();
|
|
||||||
|
done()
|
||||||
}, 300)
|
}, 300)
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
test( 'form trim checks', function() {
|
QUnit.test( 'form trim checks', assert => {
|
||||||
|
|
||||||
var el = $('#form1')
|
var el = $('#form1')
|
||||||
var test_params = {
|
var test_params = {
|
||||||
|
@ -28,6 +28,6 @@ test( 'form trim checks', function() {
|
||||||
|
|
||||||
var params = App.ControllerForm.params( el )
|
var params = App.ControllerForm.params( el )
|
||||||
|
|
||||||
deepEqual( params, test_params, 'form param check' )
|
assert.deepEqual( params, test_params, 'form param check' )
|
||||||
|
|
||||||
})
|
})
|
|
@ -1,4 +1,4 @@
|
||||||
test('form validation check', function() {
|
QUnit.test('form validation check', assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>form params check</h1><form id="form1"></form>')
|
$('#forms').append('<hr><h1>form params check</h1><form id="form1"></form>')
|
||||||
|
|
||||||
|
@ -22,27 +22,27 @@ test('form validation check', function() {
|
||||||
},
|
},
|
||||||
params: defaults,
|
params: defaults,
|
||||||
});
|
});
|
||||||
equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
assert.equal(el.find('[name="input1"]').val(), '', 'check input1 value')
|
||||||
equal(el.find('[name="input1"]').prop('required'), true, 'check input1 required')
|
assert.equal(el.find('[name="input1"]').prop('required'), true, 'check input1 required')
|
||||||
// equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
// assert.equal(el.find('[name="input1"]').is(":focus"), true, 'check input1 focus')
|
||||||
|
|
||||||
equal(el.find('[name="password1"]').val(), '', 'check password1 value')
|
assert.equal(el.find('[name="password1"]').val(), '', 'check password1 value')
|
||||||
equal(el.find('[name="password1_confirm"]').val(), '', 'check password1 value')
|
assert.equal(el.find('[name="password1_confirm"]').val(), '', 'check password1 value')
|
||||||
equal(el.find('[name="password1"]').prop('required'), true, 'check password1 required')
|
assert.equal(el.find('[name="password1"]').prop('required'), true, 'check password1 required')
|
||||||
|
|
||||||
equal(el.find('[name="textarea1"]').val(), '', 'check textarea1 value')
|
assert.equal(el.find('[name="textarea1"]').val(), '', 'check textarea1 value')
|
||||||
equal(el.find('[name="textarea1"]').prop('required'), true, 'check textarea1 required')
|
assert.equal(el.find('[name="textarea1"]').prop('required'), true, 'check textarea1 required')
|
||||||
|
|
||||||
equal(el.find('[name="select1"]').val(), '', 'check select1 value')
|
assert.equal(el.find('[name="select1"]').val(), '', 'check select1 value')
|
||||||
equal(el.find('[name="select1"]').prop('required'), true, 'check select1 required')
|
assert.equal(el.find('[name="select1"]').prop('required'), true, 'check select1 required')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti1"]').val(), '', 'check selectmulti1 value')
|
assert.equal(el.find('[name="selectmulti1"]').val(), '', 'check selectmulti1 value')
|
||||||
equal(el.find('[name="selectmulti1"]').prop('required'), true, 'check selectmulti1 required')
|
assert.equal(el.find('[name="selectmulti1"]').prop('required'), true, 'check selectmulti1 required')
|
||||||
|
|
||||||
equal(el.find('[name="autocompletion1"]').val(), '', 'check autocompletion1 value')
|
assert.equal(el.find('[name="autocompletion1"]').val(), '', 'check autocompletion1 value')
|
||||||
equal(el.find('[name="autocompletion1"]').prop('required'), true, 'check autocompletion1 required')
|
assert.equal(el.find('[name="autocompletion1"]').prop('required'), true, 'check autocompletion1 required')
|
||||||
|
|
||||||
equal(el.find('[data-name="richtext1"]').val(), '', 'check richtext1 value')
|
assert.equal(el.find('[data-name="richtext1"]').val(), '', 'check richtext1 value')
|
||||||
//equal(el.find('[data-name="richtext1"]').prop('required'), true, 'check richtext1 required')
|
//equal(el.find('[data-name="richtext1"]').prop('required'), true, 'check richtext1 required')
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
|
@ -59,40 +59,40 @@ test('form validation check', function() {
|
||||||
datetime1: 'is required',
|
datetime1: 'is required',
|
||||||
date1: 'is required',
|
date1: 'is required',
|
||||||
}
|
}
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
|
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
|
|
||||||
equal(el.find('[name="input1"]').closest('.form-group').hasClass('has-error'), true, 'check input1 has-error')
|
assert.equal(el.find('[name="input1"]').closest('.form-group').hasClass('has-error'), true, 'check input1 has-error')
|
||||||
equal(el.find('[name="input1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check input1 error message')
|
assert.equal(el.find('[name="input1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check input1 error message')
|
||||||
|
|
||||||
equal(el.find('[name="password1"]').closest('.form-group').hasClass('has-error'), true, 'check password1 has-error')
|
assert.equal(el.find('[name="password1"]').closest('.form-group').hasClass('has-error'), true, 'check password1 has-error')
|
||||||
equal(el.find('[name="password1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check password1 error message')
|
assert.equal(el.find('[name="password1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check password1 error message')
|
||||||
|
|
||||||
equal(el.find('[name="textarea1"]').closest('.form-group').hasClass('has-error'), true, 'check textarea1 has-error')
|
assert.equal(el.find('[name="textarea1"]').closest('.form-group').hasClass('has-error'), true, 'check textarea1 has-error')
|
||||||
equal(el.find('[name="textarea1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check textarea1 error message')
|
assert.equal(el.find('[name="textarea1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check textarea1 error message')
|
||||||
|
|
||||||
equal(el.find('[name="select1"]').closest('.form-group').hasClass('has-error'), true, 'check select1 has-error')
|
assert.equal(el.find('[name="select1"]').closest('.form-group').hasClass('has-error'), true, 'check select1 has-error')
|
||||||
equal(el.find('[name="select1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check select1 error message')
|
assert.equal(el.find('[name="select1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check select1 error message')
|
||||||
|
|
||||||
equal(el.find('[name="selectmulti1"]').closest('.form-group').hasClass('has-error'), true, 'check selectmulti1 has-error')
|
assert.equal(el.find('[name="selectmulti1"]').closest('.form-group').hasClass('has-error'), true, 'check selectmulti1 has-error')
|
||||||
equal(el.find('[name="selectmulti1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check selectmulti1 error message')
|
assert.equal(el.find('[name="selectmulti1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check selectmulti1 error message')
|
||||||
|
|
||||||
equal(el.find('[name="autocompletion1"]').closest('.form-group').hasClass('has-error'), true, 'check autocompletion1 has-error')
|
assert.equal(el.find('[name="autocompletion1"]').closest('.form-group').hasClass('has-error'), true, 'check autocompletion1 has-error')
|
||||||
equal(el.find('[name="autocompletion1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check autocompletion1 error message')
|
assert.equal(el.find('[name="autocompletion1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check autocompletion1 error message')
|
||||||
|
|
||||||
equal(el.find('[data-name="richtext1"]').closest('.form-group').hasClass('has-error'), true, 'check richtext1 has-error')
|
assert.equal(el.find('[data-name="richtext1"]').closest('.form-group').hasClass('has-error'), true, 'check richtext1 has-error')
|
||||||
equal(el.find('[data-name="richtext1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check richtext1 error message')
|
assert.equal(el.find('[data-name="richtext1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check richtext1 error message')
|
||||||
|
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true, 'check datetime1 has-error')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true, 'check datetime1 has-error')
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check datetime1 error message')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check datetime1 error message')
|
||||||
|
|
||||||
equal(el.find('[data-name="date1"]').closest('.form-group').hasClass('has-error'), true, 'check date1 has-error')
|
assert.equal(el.find('[data-name="date1"]').closest('.form-group').hasClass('has-error'), true, 'check date1 has-error')
|
||||||
equal(el.find('[data-name="date1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check date1 error message')
|
assert.equal(el.find('[data-name="date1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check date1 error message')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('datetime validation check', function() {
|
QUnit.test('datetime validation check', assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>datetime validation check</h1><form id="form2"></form>')
|
$('#forms').append('<hr><h1>datetime validation check</h1><form id="form2"></form>')
|
||||||
|
|
||||||
|
@ -113,17 +113,17 @@ test('datetime validation check', function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
datetime1: null,
|
datetime1: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
errors = form.validate(params)
|
errors = form.validate(params)
|
||||||
test_errors = {
|
test_errors = {
|
||||||
datetime1: 'is required',
|
datetime1: 'is required',
|
||||||
}
|
}
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
|
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true, 'check datetime1 has-error')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true, 'check datetime1 has-error')
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check datetime1 error message')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check datetime1 error message')
|
||||||
//equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), '', 'check datetime1 error message')
|
//equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), '', 'check datetime1 error message')
|
||||||
|
|
||||||
// set new values
|
// set new values
|
||||||
|
@ -139,38 +139,38 @@ test('datetime validation check', function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
datetime1: timeStamp.toISOString(),
|
datetime1: timeStamp.toISOString(),
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
// check errors
|
// check errors
|
||||||
errors = form.validate(params)
|
errors = form.validate(params)
|
||||||
test_errors = undefined
|
test_errors = undefined
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
|
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), false, 'check datetime1 has-error')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), false, 'check datetime1 has-error')
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), '', 'check datetime1 error message')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), '', 'check datetime1 error message')
|
||||||
|
|
||||||
el.find('[data-name="datetime1"] [data-item="date"]').val('').trigger('blur')
|
el.find('[data-name="datetime1"] [data-item="date"]').val('').trigger('blur')
|
||||||
el.find('[data-name="datetime1"] [data-item="date"]').datepicker('setDate')
|
el.find('[data-name="datetime1"] [data-item="date"]').datepicker('setDate')
|
||||||
el.find('[data-name="datetime1"] [data-item="time"]').val('12:42').trigger('blur')
|
el.find('[data-name="datetime1"] [data-item="time"]').val('12:42').trigger('blur')
|
||||||
el.find('[data-name="datetime1"] [data-item="time"]').trigger('change')
|
el.find('[data-name="datetime1"] [data-item="time"]').trigger('change')
|
||||||
|
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true )
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true )
|
||||||
|
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
errors = form.validate(params)
|
errors = form.validate(params)
|
||||||
test_errors = {
|
test_errors = {
|
||||||
datetime1: 'is required',
|
datetime1: 'is required',
|
||||||
}
|
}
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
|
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true, 'check datetime1 no has-error')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').hasClass('has-error'), true, 'check datetime1 no has-error')
|
||||||
equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check datetime1 error message')
|
assert.equal(el.find('[data-name="datetime1"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check datetime1 error message')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('date validation check', function() {
|
QUnit.test('date validation check', assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>date validation check</h1><form id="form3"></form>')
|
$('#forms').append('<hr><h1>date validation check</h1><form id="form3"></form>')
|
||||||
|
|
||||||
|
@ -193,17 +193,17 @@ test('date validation check', function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
date2: null,
|
date2: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
errors = form.validate(params)
|
errors = form.validate(params)
|
||||||
test_errors = {
|
test_errors = {
|
||||||
date2: 'is required',
|
date2: 'is required',
|
||||||
}
|
}
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
|
|
||||||
equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), true, 'check date2 has-error')
|
assert.equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), true, 'check date2 has-error')
|
||||||
equal(el.find('[data-name="date2"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check date2 error message')
|
assert.equal(el.find('[data-name="date2"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check date2 error message')
|
||||||
|
|
||||||
// set new values
|
// set new values
|
||||||
el.find('[data-name="date2"] [data-item="date"]').val('01/01/2015').trigger('blur')
|
el.find('[data-name="date2"] [data-item="date"]').val('01/01/2015').trigger('blur')
|
||||||
|
@ -215,42 +215,42 @@ test('date validation check', function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
date2: '2015-01-01',
|
date2: '2015-01-01',
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
// check errors
|
// check errors
|
||||||
errors = form.validate(params)
|
errors = form.validate(params)
|
||||||
test_errors = undefined
|
test_errors = undefined
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), false, 'check date1 has-error')
|
assert.equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), false, 'check date1 has-error')
|
||||||
equal(el.find('[data-name="date2"]').closest('.form-group').find('.help-inline').text(), '', 'check date1 error message')
|
assert.equal(el.find('[data-name="date2"]').closest('.form-group').find('.help-inline').text(), '', 'check date1 error message')
|
||||||
|
|
||||||
// set invalid values
|
// set invalid values
|
||||||
el.find('[data-name="date2"] [data-item="date"]').val('').trigger('blur')
|
el.find('[data-name="date2"] [data-item="date"]').val('').trigger('blur')
|
||||||
el.find('[data-name="date2"] [data-item="date"]').datepicker('setDate')
|
el.find('[data-name="date2"] [data-item="date"]').datepicker('setDate')
|
||||||
el.find('[data-name="date2"] [data-item="date"]').trigger('change')
|
el.find('[data-name="date2"] [data-item="date"]').trigger('change')
|
||||||
equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), true, 'check date2 has-error')
|
assert.equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), true, 'check date2 has-error')
|
||||||
|
|
||||||
// check params
|
// check params
|
||||||
params = App.ControllerForm.params(el)
|
params = App.ControllerForm.params(el)
|
||||||
test_params = {
|
test_params = {
|
||||||
date2: null,
|
date2: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
// check errors
|
// check errors
|
||||||
errors = form.validate(params)
|
errors = form.validate(params)
|
||||||
test_errors = {
|
test_errors = {
|
||||||
date2: 'is required',
|
date2: 'is required',
|
||||||
}
|
}
|
||||||
deepEqual(errors, test_errors, 'validation errors check')
|
assert.deepEqual(errors, test_errors, 'validation errors check')
|
||||||
App.ControllerForm.validate({ errors: errors, form: el })
|
App.ControllerForm.validate({ errors: errors, form: el })
|
||||||
|
|
||||||
equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), true, 'check date2 has-error')
|
assert.equal(el.find('[data-name="date2"]').closest('.form-group').hasClass('has-error'), true, 'check date2 has-error')
|
||||||
equal(el.find('[data-name="date2"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check date2 error message')
|
assert.equal(el.find('[data-name="date2"]').closest('.form-group').find('.help-inline').text(), 'is required', 'check date2 error message')
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "datetime selector check", function() {
|
QUnit.test( "datetime selector check", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>datetime selector check</h1><form id="form4"></form>')
|
$('#forms').append('<hr><h1>datetime selector check</h1><form id="form4"></form>')
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ test( "datetime selector check", function() {
|
||||||
datetime1: null,
|
datetime1: null,
|
||||||
datetime2: null,
|
datetime2: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
var timeStamp1 = new Date()
|
var timeStamp1 = new Date()
|
||||||
timeStamp1.setMinutes(0)
|
timeStamp1.setMinutes(0)
|
||||||
|
@ -290,7 +290,7 @@ test( "datetime selector check", function() {
|
||||||
datetime1: timeStamp1.toISOString(),
|
datetime1: timeStamp1.toISOString(),
|
||||||
datetime2: null,
|
datetime2: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
el.find('[data-name="datetime1"] .js-timepicker[data-item="time"]').val('9:00')
|
el.find('[data-name="datetime1"] .js-timepicker[data-item="time"]').val('9:00')
|
||||||
el.find('[data-name="datetime1"] .js-timepicker[data-item="time"]').trigger('blur')
|
el.find('[data-name="datetime1"] .js-timepicker[data-item="time"]').trigger('blur')
|
||||||
|
@ -303,7 +303,7 @@ test( "datetime selector check", function() {
|
||||||
datetime1: timeStamp1.toISOString(),
|
datetime1: timeStamp1.toISOString(),
|
||||||
datetime2: null,
|
datetime2: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
var timeStamp2 = new Date()
|
var timeStamp2 = new Date()
|
||||||
timeStamp2.setMinutes(0)
|
timeStamp2.setMinutes(0)
|
||||||
|
@ -322,7 +322,7 @@ test( "datetime selector check", function() {
|
||||||
datetime1: timeStamp1.toISOString(),
|
datetime1: timeStamp1.toISOString(),
|
||||||
datetime2: timeStamp2.toISOString(),
|
datetime2: timeStamp2.toISOString(),
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
// Regression test for issue #2173 - Invalid date causes errors
|
// Regression test for issue #2173 - Invalid date causes errors
|
||||||
el.find('[data-name="datetime1"] .js-datepicker').datepicker('setDate', '01/01/99999')
|
el.find('[data-name="datetime1"] .js-datepicker').datepicker('setDate', '01/01/99999')
|
||||||
|
@ -330,7 +330,7 @@ test( "datetime selector check", function() {
|
||||||
el.find('[data-name="datetime1"] .js-datepicker').datepicker('setDate', '01/01/1äöüß')
|
el.find('[data-name="datetime1"] .js-datepicker').datepicker('setDate', '01/01/1äöüß')
|
||||||
});
|
});
|
||||||
|
|
||||||
test( "date selector check", function() {
|
QUnit.test( "date selector check", assert => {
|
||||||
|
|
||||||
$('#forms').append('<hr><h1>date selector check</h1><form id="form5"></form>')
|
$('#forms').append('<hr><h1>date selector check</h1><form id="form5"></form>')
|
||||||
|
|
||||||
|
@ -351,7 +351,7 @@ test( "date selector check", function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
date3: null,
|
date3: null,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
timeStamp = new Date()
|
timeStamp = new Date()
|
||||||
|
|
||||||
|
@ -371,6 +371,6 @@ test( "date selector check", function() {
|
||||||
test_params = {
|
test_params = {
|
||||||
date3: currentTime,
|
date3: currentTime,
|
||||||
}
|
}
|
||||||
deepEqual(params, test_params, 'params check')
|
assert.deepEqual(params, test_params, 'params check')
|
||||||
|
|
||||||
});
|
});
|
File diff suppressed because one or more lines are too long
230
public/assets/tests/qunit/i18n.js
Normal file
230
public/assets/tests/qunit/i18n.js
Normal file
|
@ -0,0 +1,230 @@
|
||||||
|
QUnit.test('i18n .detectBrowserLocale', assert => {
|
||||||
|
var original_userLanguage = window.navigator.userLanguage
|
||||||
|
var original_language = window.navigator.language
|
||||||
|
var original_languages = window.navigator.languages
|
||||||
|
|
||||||
|
var reset = function(){
|
||||||
|
window.navigator.userLanguage = original_userLanguage
|
||||||
|
window.navigator.language = original_language
|
||||||
|
window.navigator.languages = original_languages
|
||||||
|
}
|
||||||
|
|
||||||
|
var mock = function(languages, language, userLanguage){
|
||||||
|
Object.defineProperty(window.navigator, 'language', {value: language, configurable: true });
|
||||||
|
Object.defineProperty(window.navigator, 'languages', {value: languages, configurable: true });
|
||||||
|
Object.defineProperty(window.navigator, 'userLanguage', {value: userLanguage, configurable: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
mock(undefined, undefined, undefined)
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(undefined, undefined, 'non-existant');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(undefined, undefined, 'en');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(undefined, undefined, 'lt');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'lt')
|
||||||
|
|
||||||
|
mock(undefined, 'lt', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'lt')
|
||||||
|
|
||||||
|
mock(undefined, 'en', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(['en'], 'lt', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(['en-us'], 'lt', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(['en-US'], 'lt', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(['lt', 'en-US'], 'lt', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'lt')
|
||||||
|
|
||||||
|
mock(['en-GB', 'en-US'], 'lt', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-gb')
|
||||||
|
|
||||||
|
mock(['en-XYZ'], 'lt', 'lv');
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'en-us')
|
||||||
|
|
||||||
|
mock(['xyz', 'lt'], 'lv', undefined);
|
||||||
|
assert.equal(App.i18n.detectBrowserLocale(), 'lt')
|
||||||
|
|
||||||
|
reset()
|
||||||
|
})
|
||||||
|
|
||||||
|
// i18n
|
||||||
|
QUnit.test('i18n', assert => {
|
||||||
|
|
||||||
|
// de
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
var translated = App.i18n.translateContent('yes')
|
||||||
|
assert.equal(translated, 'ja', 'de-de - yes / ja translated correctly')
|
||||||
|
|
||||||
|
translated = App.i18n.translatePlain('yes')
|
||||||
|
assert.equal(translated, 'ja', 'de-de - yes / ja translated correctly')
|
||||||
|
|
||||||
|
translated = App.i18n.translateInline('yes')
|
||||||
|
assert.equal(translated, 'ja', 'de-de - yes / ja translated correctly')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('%s ago', 123);
|
||||||
|
assert.equal(translated, 'vor 123', 'de-de - %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('%s ago', '<b>quote</b>')
|
||||||
|
assert.equal(translated, 'vor <b>quote</b>', 'de-de - %s - quote')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('%s %s test', 123, 'xxx |B|')
|
||||||
|
assert.equal(translated, '123 xxx |B| test', 'de-de - %s %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('|%s| %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<b>123</b> xxx test', 'de-de - *%s* %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('||%s|| %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<i>123</i> xxx test', 'de-de - *%s* %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('_%s_ %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<u>123</u> xxx test', 'de-de - _%s_ %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<kbd>123</kbd> xxx test', 'de-de - §%s§ %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('//%s// %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<del>123</del> xxx test', 'de-de - //%s// %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('\'%s\' %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, ''123' xxx test', 'de-de - \'%s\' %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('<test&now>//*äöüß')
|
||||||
|
assert.equal(translated, '<test&now>//*äöüß', 'de - <test&now>//*äöüß')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('some link [to what ever](http://lalala)')
|
||||||
|
assert.equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'de-de - link')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('some link [to what ever](%s)', 'http://lalala')
|
||||||
|
assert.equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'de-de - link')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('Enables user authentication via %s. Register your app first at [%s](%s).', 'XXX', 'YYY', 'http://lalala')
|
||||||
|
assert.equal(translated, 'Aktivieren der Benutzeranmeldung über XXX. Registriere Deine Anwendung zuerst über <a href="http://lalala" target="_blank">YYY</a>.', 'en-us - link')
|
||||||
|
|
||||||
|
var time_local = new Date();
|
||||||
|
var offset = time_local.getTimezoneOffset();
|
||||||
|
var timestamp = App.i18n.translateTimestamp('2012-11-06T21:07:24Z', offset);
|
||||||
|
assert.equal(timestamp, '06.11.2012 21:07', 'de-de - timestamp translated correctly')
|
||||||
|
|
||||||
|
var timestamp = App.i18n.translateTimestamp('2021-02-08 09:13:20 UTC', offset);
|
||||||
|
assert.equal(timestamp, '08.02.2021 09:13', 'de-de - timestamp translated correctly with UTC format')
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp('', offset);
|
||||||
|
assert.equal(timestamp, '', 'de-de - timestamp translated correctly')
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp(null, offset);
|
||||||
|
assert.equal(timestamp, null, 'de-de - timestamp translated correctly')
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp(undefined, offset);
|
||||||
|
assert.equal(timestamp, undefined, 'de-de - timestamp translated correctly')
|
||||||
|
|
||||||
|
var date = App.i18n.translateDate('2012-11-06', 0)
|
||||||
|
assert.equal(date, '06.11.2012', 'de-de - date translated correctly')
|
||||||
|
|
||||||
|
date = App.i18n.translateDate('', 0)
|
||||||
|
assert.equal(date, '', 'de-de - date translated correctly')
|
||||||
|
|
||||||
|
date = App.i18n.translateDate(null, 0)
|
||||||
|
assert.equal(date, null, 'de-de - date translated correctly')
|
||||||
|
|
||||||
|
date = App.i18n.translateDate(undefined, 0)
|
||||||
|
assert.equal(date, undefined, 'de-de - date translated correctly')
|
||||||
|
|
||||||
|
// en
|
||||||
|
App.i18n.set('en-us')
|
||||||
|
translated = App.i18n.translateContent('yes')
|
||||||
|
assert.equal(translated, 'yes', 'en-us - yes translated correctly')
|
||||||
|
|
||||||
|
translated = App.i18n.translatePlain('yes')
|
||||||
|
assert.equal(translated, 'yes', 'en-us - yes translated correctly')
|
||||||
|
|
||||||
|
translated = App.i18n.translateInline('yes')
|
||||||
|
assert.equal(translated, 'yes', 'en-us - yes translated correctly')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('%s ago', 123);
|
||||||
|
assert.equal(translated, '123 ago', 'en-us - %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('%s ago', '<b>quote</b>')
|
||||||
|
assert.equal(translated, '<b>quote</b> ago', 'en-us - %s - qupte')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('%s %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '123 xxx test', 'en-us - %s %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('|%s| %s test', 123, 'xxx |B|')
|
||||||
|
assert.equal(translated, '<b>123</b> xxx |B| test', 'en-us - *%s* %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('||%s|| %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<i>123</i> xxx test', 'en-us - *%s* %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('_%s_ %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<u>123</u> xxx test', 'en-us - _%s_ %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('§%s§ %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<kbd>123</kbd> xxx test', 'en-us - §%s§ %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('Here you can search for tickets, customers and organizations. Use the wildcard §*§ to find everything. E. g. §smi*§ or §rosent*l§. You also can use ||double quotes|| for searching phrases §"some phrase"§.')
|
||||||
|
assert.equal(translated, 'Here you can search for tickets, customers and organizations. Use the wildcard <kbd>*</kbd> to find everything. E. g. <kbd>smi*</kbd> or <kbd>rosent*l</kbd>. You also can use <i>double quotes</i> for searching phrases <kbd>"some phrase"</kbd>.', 'en-us - §§ §§ §§ || §§')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('//%s// %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, '<del>123</del> xxx test', 'en-us - //%s// %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('\'%s\' %s test', 123, 'xxx')
|
||||||
|
assert.equal(translated, ''123' xxx test', 'en-us - \'%s\' %s')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('<test&now>')
|
||||||
|
assert.equal(translated, '<test&now>', 'en-us - <test&now>')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('some link [to what ever](http://lalala)')
|
||||||
|
assert.equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'en-us - link')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('some link [to what ever](%s)', 'http://lalala')
|
||||||
|
assert.equal(translated, 'some link <a href="http://lalala" target="_blank">to what ever</a>', 'en-us - link')
|
||||||
|
|
||||||
|
translated = App.i18n.translateContent('Enables user authentication via %s. Register your app first at [%s](%s).', 'XXX', 'YYY', 'http://lalala')
|
||||||
|
assert.equal(translated, 'Enables user authentication via XXX. Register your app first at <a href="http://lalala" target="_blank">YYY</a>.', 'en-us - link')
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp('2012-11-06T21:07:24Z', offset)
|
||||||
|
assert.equal(timestamp, '11/06/2012 21:07', 'en - timestamp translated correctly')
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp('', offset);
|
||||||
|
assert.equal(timestamp, '', 'en - timestamp translated correctly')
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp(null, offset);
|
||||||
|
assert.equal(timestamp, null, 'en - timestamp translated correctly')
|
||||||
|
|
||||||
|
timestamp = App.i18n.translateTimestamp(undefined, offset);
|
||||||
|
assert.equal(timestamp, undefined, 'en - timestamp translated correctly')
|
||||||
|
|
||||||
|
date = App.i18n.translateDate('2012-11-06', 0)
|
||||||
|
assert.equal(date, '11/06/2012', 'en - date translated correctly')
|
||||||
|
|
||||||
|
date = App.i18n.translateDate('', 0)
|
||||||
|
assert.equal(date, '', 'en - date translated correctly')
|
||||||
|
|
||||||
|
date = App.i18n.translateDate(null, 0)
|
||||||
|
assert.equal(date, null, 'en - date translated correctly')
|
||||||
|
|
||||||
|
date = App.i18n.translateDate(undefined, 0)
|
||||||
|
assert.equal(date, undefined, 'en - date translated correctly')
|
||||||
|
|
||||||
|
// locale alias test
|
||||||
|
// de
|
||||||
|
App.i18n.set('de')
|
||||||
|
var translated = App.i18n.translateContent('yes')
|
||||||
|
assert.equal(translated, 'ja', 'de - yes / ja translated correctly')
|
||||||
|
|
||||||
|
// locale detection test
|
||||||
|
// de-ch
|
||||||
|
App.i18n.set('de-ch')
|
||||||
|
var translated = App.i18n.translateContent('yes')
|
||||||
|
assert.equal(translated, 'ja', 'de - yes / ja translated correctly')
|
||||||
|
});
|
|
@ -1,11 +1,11 @@
|
||||||
// image service
|
// image service
|
||||||
test('test image resizing with defined height', function(assert) {
|
QUnit.test('test image resizing with defined height', assert => {
|
||||||
var async_done = assert.async(1)
|
var done = assert.async()
|
||||||
|
|
||||||
App.ImageService.resize(image_40x30, 'auto', 15, 1, 'image/png', 0.7, function(image, width, height) {
|
App.ImageService.resize(image_40x30, 'auto', 15, 1, 'image/png', 0.7, function(image, width, height) {
|
||||||
equal(width, 20)
|
assert.equal(width, 20)
|
||||||
|
|
||||||
async_done()
|
done()
|
||||||
})
|
})
|
||||||
|
|
||||||
});
|
});
|
|
@ -1,38 +1,38 @@
|
||||||
test('kb video url parsing and converting to embeding url', function() {
|
QUnit.test('kb video url parsing and converting to embeding url', assert => {
|
||||||
var klass = App.UiElement.richtext.additions.RichTextToolPopupVideo;
|
var klass = App.UiElement.richtext.additions.RichTextToolPopupVideo;
|
||||||
|
|
||||||
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=vTTzwJsHpU8')
|
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=vTTzwJsHpU8')
|
||||||
|
|
||||||
equal(parsed[0], 'youtube')
|
assert.equal(parsed[0], 'youtube')
|
||||||
equal(parsed[1], 'vTTzwJsHpU8')
|
assert.equal(parsed[1], 'vTTzwJsHpU8')
|
||||||
|
|
||||||
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=vTTzwJsHpU8&other=true')
|
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=vTTzwJsHpU8&other=true')
|
||||||
|
|
||||||
equal(parsed[0], 'youtube')
|
assert.equal(parsed[0], 'youtube')
|
||||||
equal(parsed[1], 'vTTzwJsHpU8')
|
assert.equal(parsed[1], 'vTTzwJsHpU8')
|
||||||
|
|
||||||
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=vTTzwJsHpU8#hashtag')
|
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=vTTzwJsHpU8#hashtag')
|
||||||
|
|
||||||
equal(parsed[0], 'youtube')
|
assert.equal(parsed[0], 'youtube')
|
||||||
equal(parsed[1], 'vTTzwJsHpU8')
|
assert.equal(parsed[1], 'vTTzwJsHpU8')
|
||||||
|
|
||||||
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=_EYF1-2uiIg')
|
var parsed = klass.detectProviderAndId('https://www.youtube.com/watch?v=_EYF1-2uiIg')
|
||||||
|
|
||||||
equal(parsed[0], 'youtube')
|
assert.equal(parsed[0], 'youtube')
|
||||||
equal(parsed[1], '_EYF1-2uiIg')
|
assert.equal(parsed[1], '_EYF1-2uiIg')
|
||||||
|
|
||||||
var parsed = klass.detectProviderAndId('https://www.youtu.be/vTTzwJsHpU8')
|
var parsed = klass.detectProviderAndId('https://www.youtu.be/vTTzwJsHpU8')
|
||||||
|
|
||||||
equal(parsed[0], 'youtube')
|
assert.equal(parsed[0], 'youtube')
|
||||||
equal(parsed[1], 'vTTzwJsHpU8')
|
assert.equal(parsed[1], 'vTTzwJsHpU8')
|
||||||
|
|
||||||
var parsed = klass.detectProviderAndId('https://www.youtube.com/embed/vTTzwJsHpU8')
|
var parsed = klass.detectProviderAndId('https://www.youtube.com/embed/vTTzwJsHpU8')
|
||||||
|
|
||||||
equal(parsed[0], 'youtube')
|
assert.equal(parsed[0], 'youtube')
|
||||||
equal(parsed[1], 'vTTzwJsHpU8')
|
assert.equal(parsed[1], 'vTTzwJsHpU8')
|
||||||
|
|
||||||
var parsed = klass.detectProviderAndId('https://www.vimeo.com/358296442')
|
var parsed = klass.detectProviderAndId('https://www.vimeo.com/358296442')
|
||||||
|
|
||||||
equal(parsed[0], 'vimeo')
|
assert.equal(parsed[0], 'vimeo')
|
||||||
equal(parsed[1], '358296442')
|
assert.equal(parsed[1], '358296442')
|
||||||
})
|
})
|
65
public/assets/tests/qunit/local_storage.js
Normal file
65
public/assets/tests/qunit/local_storage.js
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
window.onload = function() {
|
||||||
|
|
||||||
|
QUnit.test('Test item removal from local storage', assert => {
|
||||||
|
var key = 'test_key_1'
|
||||||
|
var value = 'test_value_1'
|
||||||
|
|
||||||
|
App.LocalStorage.set(key, value)
|
||||||
|
|
||||||
|
assert.equal(App.LocalStorage.get(key), value)
|
||||||
|
|
||||||
|
App.LocalStorage.delete(key)
|
||||||
|
|
||||||
|
assert.equal(App.LocalStorage.get(key), undefined)
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('Test user-specific item removal from local storage', assert => {
|
||||||
|
var key = 'test_key_2'
|
||||||
|
var value = 'test_value_2'
|
||||||
|
var user_id = 2
|
||||||
|
|
||||||
|
App.LocalStorage.set(key, value, user_id)
|
||||||
|
|
||||||
|
assert.equal(App.LocalStorage.get(key, user_id), value)
|
||||||
|
|
||||||
|
App.LocalStorage.delete(key, user_id)
|
||||||
|
|
||||||
|
assert.equal(App.LocalStorage.get(key, user_id), undefined)
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('Test key lookup', assert => {
|
||||||
|
App.LocalStorage.clear()
|
||||||
|
|
||||||
|
var key = 'test_key_3'
|
||||||
|
var value = 'test_value_3'
|
||||||
|
var user_id = 2
|
||||||
|
var alt_key = 'test_alt_key_3'
|
||||||
|
|
||||||
|
// verify no keys initially
|
||||||
|
assert.equal(App.LocalStorage.keys().length, 0)
|
||||||
|
|
||||||
|
App.LocalStorage.set(key, value, user_id)
|
||||||
|
|
||||||
|
// has 1 key in total
|
||||||
|
assert.equal(App.LocalStorage.keys().length, 1)
|
||||||
|
|
||||||
|
// doesn't return anything with wrong prefix
|
||||||
|
assert.equal(App.LocalStorage.keys('a').length, 0)
|
||||||
|
|
||||||
|
// doesn't return anything since user id not given
|
||||||
|
assert.equal(App.LocalStorage.keys('test').length, 0)
|
||||||
|
|
||||||
|
// correct
|
||||||
|
assert.equal(App.LocalStorage.keys('test', user_id).length, 1)
|
||||||
|
|
||||||
|
// verify value
|
||||||
|
assert.equal(App.LocalStorage.keys('test', user_id)[0].match(key + '$'), key)
|
||||||
|
|
||||||
|
App.LocalStorage.set(alt_key, value)
|
||||||
|
|
||||||
|
// returns 1 key without user id
|
||||||
|
assert.equal(App.LocalStorage.keys('test').length, 1)
|
||||||
|
assert.equal(App.LocalStorage.keys('test')[0], alt_key)
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
window.onload = function() {
|
window.onload = function() {
|
||||||
|
|
||||||
// search
|
// search
|
||||||
test( "model search tests", function() {
|
QUnit.test( "model search tests", assert => {
|
||||||
|
|
||||||
App.TicketPriority.refresh( [
|
App.TicketPriority.refresh( [
|
||||||
{
|
{
|
||||||
|
@ -34,32 +34,32 @@ test( "model search tests", function() {
|
||||||
},
|
},
|
||||||
] )
|
] )
|
||||||
priorities = App.TicketPriority.search({sortBy:'created_at', order: 'ASC'})
|
priorities = App.TicketPriority.search({sortBy:'created_at', order: 'ASC'})
|
||||||
equal('2 normal', priorities[0].name, 'check 1 entry')
|
assert.equal('2 normal', priorities[0].name, 'check 1 entry')
|
||||||
equal('3 high', priorities[1].name, 'check 2 entry')
|
assert.equal('3 high', priorities[1].name, 'check 2 entry')
|
||||||
equal('4 very high', priorities[2].name, 'check 3 entry')
|
assert.equal('4 very high', priorities[2].name, 'check 3 entry')
|
||||||
equal('1 low', priorities[3].name, 'check 4 entry')
|
assert.equal('1 low', priorities[3].name, 'check 4 entry')
|
||||||
equal(undefined, priorities[4], 'check 5 entry')
|
assert.equal(undefined, priorities[4], 'check 5 entry')
|
||||||
|
|
||||||
priorities = App.TicketPriority.search({sortBy:'created_at', order: 'DESC'})
|
priorities = App.TicketPriority.search({sortBy:'created_at', order: 'DESC'})
|
||||||
equal('1 low', priorities[0].name, 'check 4 entry')
|
assert.equal('1 low', priorities[0].name, 'check 4 entry')
|
||||||
equal('4 very high', priorities[1].name, 'check 3 entry')
|
assert.equal('4 very high', priorities[1].name, 'check 3 entry')
|
||||||
equal('3 high', priorities[2].name, 'check 2 entry')
|
assert.equal('3 high', priorities[2].name, 'check 2 entry')
|
||||||
equal('2 normal', priorities[3].name, 'check 1 entry')
|
assert.equal('2 normal', priorities[3].name, 'check 1 entry')
|
||||||
equal(undefined, priorities[4], 'check 5 entry')
|
assert.equal(undefined, priorities[4], 'check 5 entry')
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// model
|
// model
|
||||||
test( "model loadAssets tests - 1", function() {
|
QUnit.test( "model loadAssets tests - 1", assert => {
|
||||||
window.refreshCounter1 = 0
|
window.refreshCounter1 = 0
|
||||||
var callback1 = function(state, triggerType) {
|
var callback1 = function(state, triggerType) {
|
||||||
window.refreshCounter1 = window.refreshCounter1 + 1
|
window.refreshCounter1 = window.refreshCounter1 + 1
|
||||||
equal(state.id, 9999, 'id check')
|
assert.equal(state.id, 9999, 'id check')
|
||||||
if (window.refreshCounter1 == 1) {
|
if (window.refreshCounter1 == 1) {
|
||||||
equal('full', triggerType, 'trigger type check')
|
assert.equal('full', triggerType, 'trigger type check')
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
equal('refresh', triggerType, 'trigger type check')
|
assert.equal('refresh', triggerType, 'trigger type check')
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( window.refreshCounter1 == 1 ) {
|
if ( window.refreshCounter1 == 1 ) {
|
||||||
|
@ -96,23 +96,23 @@ test( "model loadAssets tests - 1", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
App.Delay.set( function() {
|
App.Delay.set( function() {
|
||||||
test( "model loadAssets tests - 1 / check refresh counter", function() {
|
QUnit.test( "model loadAssets tests - 1 / check refresh counter", assert => {
|
||||||
equal(window.refreshCounter1, 2, 'check refresh counter')
|
assert.equal(window.refreshCounter1, 2, 'check refresh counter')
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
1000
|
1000
|
||||||
);
|
);
|
||||||
|
|
||||||
test( "model loadAssets tests - 2", function() {
|
QUnit.test( "model loadAssets tests - 2", assert => {
|
||||||
window.refreshCounter2 = 0
|
window.refreshCounter2 = 0
|
||||||
var callback2 = function(state, triggerType) {
|
var callback2 = function(state, triggerType) {
|
||||||
window.refreshCounter2 = window.refreshCounter2 + 1
|
window.refreshCounter2 = window.refreshCounter2 + 1
|
||||||
equal(state.id, 10000, 'id check')
|
assert.equal(state.id, 10000, 'id check')
|
||||||
if (window.refreshCounter2 == 1) {
|
if (window.refreshCounter2 == 1) {
|
||||||
equal('full', triggerType, 'trigger type check')
|
assert.equal('full', triggerType, 'trigger type check')
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
equal('refresh', triggerType, 'trigger type check')
|
assert.equal('refresh', triggerType, 'trigger type check')
|
||||||
}
|
}
|
||||||
if ( window.refreshCounter2 == 1 ) {
|
if ( window.refreshCounter2 == 1 ) {
|
||||||
App.Collection.loadAssets({
|
App.Collection.loadAssets({
|
||||||
|
@ -147,23 +147,23 @@ test( "model loadAssets tests - 2", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
App.Delay.set( function() {
|
App.Delay.set( function() {
|
||||||
test( "model loadAssets tests - 2 / check refresh counter", function() {
|
QUnit.test( "model loadAssets tests - 2 / check refresh counter", assert => {
|
||||||
equal(window.refreshCounter2, 2, 'check refresh counter')
|
assert.equal(window.refreshCounter2, 2, 'check refresh counter')
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
1200
|
1200
|
||||||
);
|
);
|
||||||
|
|
||||||
test( "model loadAssets tests - 3", function() {
|
QUnit.test( "model loadAssets tests - 3", assert => {
|
||||||
window.refreshCounter3 = 0
|
window.refreshCounter3 = 0
|
||||||
var callback3 = function(state, triggerType) {
|
var callback3 = function(state, triggerType) {
|
||||||
window.refreshCounter3 = window.refreshCounter3 + 1
|
window.refreshCounter3 = window.refreshCounter3 + 1
|
||||||
equal(state.id, 10001, 'id check')
|
assert.equal(state.id, 10001, 'id check')
|
||||||
if (window.refreshCounter3 == 1) {
|
if (window.refreshCounter3 == 1) {
|
||||||
equal('full', triggerType, 'trigger type check')
|
assert.equal('full', triggerType, 'trigger type check')
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
equal('refresh', triggerType, 'trigger type check')
|
assert.equal('refresh', triggerType, 'trigger type check')
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( window.refreshCounter3 == 1 ) {
|
if ( window.refreshCounter3 == 1 ) {
|
||||||
|
@ -199,14 +199,14 @@ test( "model loadAssets tests - 3", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
App.Delay.set( function() {
|
App.Delay.set( function() {
|
||||||
test( "model loadAssets tests - 3 / check refresh counter", function() {
|
QUnit.test( "model loadAssets tests - 3 / check refresh counter", assert => {
|
||||||
equal(window.refreshCounter3, 3, 'check refresh counter')
|
assert.equal(window.refreshCounter3, 3, 'check refresh counter')
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
1400
|
1400
|
||||||
);
|
);
|
||||||
|
|
||||||
test("updateAttributes will change existing attributes and add new ones", function() {
|
QUnit.test("updateAttributes will change existing attributes and add new ones", assert => {
|
||||||
App.Ticket.resetAttributes();
|
App.Ticket.resetAttributes();
|
||||||
|
|
||||||
var attributesBefore = _.clone(App.Ticket.configure_attributes);
|
var attributesBefore = _.clone(App.Ticket.configure_attributes);
|
||||||
|
@ -226,15 +226,15 @@ test("updateAttributes will change existing attributes and add new ones", functi
|
||||||
|
|
||||||
var attributesAfterUpdate = _.clone(App.Ticket.configure_attributes);
|
var attributesAfterUpdate = _.clone(App.Ticket.configure_attributes);
|
||||||
|
|
||||||
equal(attributesAfterUpdate.length, attributesBefore.length + 1, 'new attributes list contains 1 more elements')
|
assert.equal(attributesAfterUpdate.length, attributesBefore.length + 1, 'new attributes list contains 1 more elements')
|
||||||
equal(attributesAfterUpdate[attributesAfterUpdate.length - 1]['name'], 'new_attribute_1010101', 'new attributes list contains the new element')
|
assert.equal(attributesAfterUpdate[attributesAfterUpdate.length - 1]['name'], 'new_attribute_1010101', 'new attributes list contains the new element')
|
||||||
equal(attributesAfterUpdate[0]['new_option_1239393'], 1, 'first element of the new attributes got updated with the new option')
|
assert.equal(attributesAfterUpdate[0]['new_option_1239393'], 1, 'first element of the new attributes got updated with the new option')
|
||||||
|
|
||||||
App.Ticket.resetAttributes();
|
App.Ticket.resetAttributes();
|
||||||
var attributesAfterReset = _.clone(App.Ticket.configure_attributes);
|
var attributesAfterReset = _.clone(App.Ticket.configure_attributes);
|
||||||
|
|
||||||
equal(attributesAfterReset.length, attributesBefore.length, 'new attributes list has the same elements after reset')
|
assert.equal(attributesAfterReset.length, attributesBefore.length, 'new attributes list has the same elements after reset')
|
||||||
equal(attributesAfterReset[0]['new_option_1239393'], undefined, 'first element of the new attributes has no attribute new_option_1239393')
|
assert.equal(attributesAfterReset[0]['new_option_1239393'], undefined, 'first element of the new attributes has no attribute new_option_1239393')
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,51 +1,51 @@
|
||||||
window.onload = function() {
|
window.onload = function() {
|
||||||
|
|
||||||
test("model bindings and rebinding", function() {
|
QUnit.test("model bindings and rebinding", assert => {
|
||||||
|
|
||||||
var callback_count1 = 0
|
var callback_count1 = 0
|
||||||
var callbacks = App.Template._callbacks
|
var callbacks = App.Template._callbacks
|
||||||
Object.keys(callbacks).forEach(function(key) {
|
Object.keys(callbacks).forEach(function(key) {
|
||||||
callback_count1 = callback_count1 + callbacks[key].length
|
callback_count1 = callback_count1 + callbacks[key].length
|
||||||
});
|
});
|
||||||
equal(callback_count1, 2)
|
assert.equal(callback_count1, 2)
|
||||||
|
|
||||||
equal(App.Template.SUBSCRIPTION_COLLECTION, undefined)
|
assert.equal(App.Template.SUBSCRIPTION_COLLECTION, undefined)
|
||||||
|
|
||||||
App.Template.clearInMemory()
|
App.Template.clearInMemory()
|
||||||
|
|
||||||
equal(App.Template.SUBSCRIPTION_COLLECTION, undefined)
|
assert.equal(App.Template.SUBSCRIPTION_COLLECTION, undefined)
|
||||||
|
|
||||||
var callback_count2 = 0
|
var callback_count2 = 0
|
||||||
callbacks = App.Template._callbacks
|
callbacks = App.Template._callbacks
|
||||||
Object.keys(callbacks).forEach(function(key) {
|
Object.keys(callbacks).forEach(function(key) {
|
||||||
callback_count2 = callback_count2 + callbacks[key].length
|
callback_count2 = callback_count2 + callbacks[key].length
|
||||||
});
|
});
|
||||||
equal(callback_count2, callback_count1)
|
assert.equal(callback_count2, callback_count1)
|
||||||
|
|
||||||
var render = function() {}
|
var render = function() {}
|
||||||
var subscribe_id = App.Template.subscribe(render, {initFetch: true})
|
var subscribe_id = App.Template.subscribe(render, {initFetch: true})
|
||||||
|
|
||||||
ok(_.isObject(App.Template.SUBSCRIPTION_COLLECTION))
|
assert.ok(_.isObject(App.Template.SUBSCRIPTION_COLLECTION))
|
||||||
ok(!_.isEmpty(App.Template.SUBSCRIPTION_COLLECTION))
|
assert.ok(!_.isEmpty(App.Template.SUBSCRIPTION_COLLECTION))
|
||||||
|
|
||||||
var callback_count3 = 0
|
var callback_count3 = 0
|
||||||
callbacks = App.Template._callbacks
|
callbacks = App.Template._callbacks
|
||||||
Object.keys(callbacks).forEach(function(key) {
|
Object.keys(callbacks).forEach(function(key) {
|
||||||
callback_count3 = callback_count3 + callbacks[key].length
|
callback_count3 = callback_count3 + callbacks[key].length
|
||||||
});
|
});
|
||||||
equal(callback_count3, 6)
|
assert.equal(callback_count3, 6)
|
||||||
|
|
||||||
App.Template.clearInMemory()
|
App.Template.clearInMemory()
|
||||||
|
|
||||||
ok(_.isObject(App.Template.SUBSCRIPTION_COLLECTION))
|
assert.ok(_.isObject(App.Template.SUBSCRIPTION_COLLECTION))
|
||||||
ok(_.isEmpty(App.Template.SUBSCRIPTION_COLLECTION))
|
assert.ok(_.isEmpty(App.Template.SUBSCRIPTION_COLLECTION))
|
||||||
|
|
||||||
var callback_count4 = 0
|
var callback_count4 = 0
|
||||||
callbacks = App.Template._callbacks
|
callbacks = App.Template._callbacks
|
||||||
Object.keys(callbacks).forEach(function(key) {
|
Object.keys(callbacks).forEach(function(key) {
|
||||||
callback_count4 = callback_count4 + callbacks[key].length
|
callback_count4 = callback_count4 + callbacks[key].length
|
||||||
});
|
});
|
||||||
equal(callback_count4, callback_count3)
|
assert.equal(callback_count4, callback_count3)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -107,40 +107,40 @@ window.onload = function() {
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|
||||||
test('ticket.editabe customer user #1', function() {
|
QUnit.test('ticket.editabe customer user #1', assert => {
|
||||||
App.Session.set(33)
|
App.Session.set(33)
|
||||||
ticket1 = App.Ticket.find(1);
|
ticket1 = App.Ticket.find(1);
|
||||||
ok(ticket1.editable(), 'access via customer_id');
|
assert.ok(ticket1.editable(), 'access via customer_id');
|
||||||
ticket2 = App.Ticket.find(2);
|
ticket2 = App.Ticket.find(2);
|
||||||
ok(ticket2.editable(), 'access via organization_id');
|
assert.ok(ticket2.editable(), 'access via organization_id');
|
||||||
ticket3 = App.Ticket.find(3);
|
ticket3 = App.Ticket.find(3);
|
||||||
ok(!ticket3.editable(), 'no access');
|
assert.ok(!ticket3.editable(), 'no access');
|
||||||
ticket4 = App.Ticket.find(4);
|
ticket4 = App.Ticket.find(4);
|
||||||
ok(!ticket4.editable(), 'no access');
|
assert.ok(!ticket4.editable(), 'no access');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('ticket.editabe customer user #2', function() {
|
QUnit.test('ticket.editabe customer user #2', assert => {
|
||||||
App.Session.set(44)
|
App.Session.set(44)
|
||||||
ticket1 = App.Ticket.find(1);
|
ticket1 = App.Ticket.find(1);
|
||||||
ok(!ticket1.editable(), 'no access');
|
assert.ok(!ticket1.editable(), 'no access');
|
||||||
ticket2 = App.Ticket.find(2);
|
ticket2 = App.Ticket.find(2);
|
||||||
ok(ticket2.editable(), 'access via customer_id');
|
assert.ok(ticket2.editable(), 'access via customer_id');
|
||||||
ticket3 = App.Ticket.find(3);
|
ticket3 = App.Ticket.find(3);
|
||||||
ok(!ticket3.editable(), 'no access');
|
assert.ok(!ticket3.editable(), 'no access');
|
||||||
ticket4 = App.Ticket.find(4);
|
ticket4 = App.Ticket.find(4);
|
||||||
ok(!ticket4.editable(), 'no access');
|
assert.ok(!ticket4.editable(), 'no access');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('ticket.editabe customer user #3', function() {
|
QUnit.test('ticket.editabe customer user #3', assert => {
|
||||||
App.Session.set(55)
|
App.Session.set(55)
|
||||||
ticket1 = App.Ticket.find(1);
|
ticket1 = App.Ticket.find(1);
|
||||||
ok(!ticket1.editable(), 'no access');
|
assert.ok(!ticket1.editable(), 'no access');
|
||||||
ticket2 = App.Ticket.find(2);
|
ticket2 = App.Ticket.find(2);
|
||||||
ok(!ticket2.editable(), 'no access');
|
assert.ok(!ticket2.editable(), 'no access');
|
||||||
ticket3 = App.Ticket.find(3);
|
ticket3 = App.Ticket.find(3);
|
||||||
ok(ticket3.editable(), 'access via customer_id');
|
assert.ok(ticket3.editable(), 'access via customer_id');
|
||||||
ticket4 = App.Ticket.find(4);
|
ticket4 = App.Ticket.find(4);
|
||||||
ok(!ticket4.editable(), 'no access');
|
assert.ok(!ticket4.editable(), 'no access');
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
110
public/assets/tests/qunit/model_ui.js
Normal file
110
public/assets/tests/qunit/model_ui.js
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
window.onload = function() {
|
||||||
|
|
||||||
|
// model
|
||||||
|
QUnit.test( "model ui basic tests", assert => {
|
||||||
|
|
||||||
|
// load ref object
|
||||||
|
App.Collection.loadAssets({
|
||||||
|
TicketState: {
|
||||||
|
1: {
|
||||||
|
name: 'new', id: 1, updated_at: "2014-11-07T23:43:08.000Z",
|
||||||
|
},
|
||||||
|
2: {
|
||||||
|
name: 'open', id: 2, updated_at: "2014-11-07T23:43:08.000Z",
|
||||||
|
},
|
||||||
|
3: {
|
||||||
|
name: 'closed <>&', id: 3, updated_at: "2014-11-07T23:43:08.000Z",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
// create ticket
|
||||||
|
var attribute1 = {
|
||||||
|
name: 'date', display: 'date 1', tag: 'date', null: true
|
||||||
|
};
|
||||||
|
App.Ticket.configure_attributes.push( attribute1 )
|
||||||
|
var attribute2 = {
|
||||||
|
name: 'textarea', display: 'textarea 1', tag: 'textarea', null: true
|
||||||
|
};
|
||||||
|
App.Ticket.configure_attributes.push( attribute2 )
|
||||||
|
var attribute3 = {
|
||||||
|
name: 'link1', display: 'link 1', linktemplate: 'http://zammad.com', tag: 'input', null: true, translate: true
|
||||||
|
};
|
||||||
|
App.Ticket.configure_attributes.push( attribute3 )
|
||||||
|
var attribute4 = {
|
||||||
|
name: 'link2', display: 'link 1', linktemplate: 'http://zammad.com', tag: 'input', null: true
|
||||||
|
};
|
||||||
|
App.Ticket.configure_attributes.push( attribute4 )
|
||||||
|
|
||||||
|
var ticket = new App.Ticket()
|
||||||
|
ticket.load({
|
||||||
|
id: 1000,
|
||||||
|
title: 'some title <>&',
|
||||||
|
state_id: 2,
|
||||||
|
updated_at: '2014-11-07T23:43:08.000Z',
|
||||||
|
date: '2015-02-07',
|
||||||
|
textarea: "some new\nline",
|
||||||
|
link1: 'closed',
|
||||||
|
link2: 'closed',
|
||||||
|
})
|
||||||
|
|
||||||
|
App.i18n.set('en-us')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'id' ), 1000)
|
||||||
|
assert.equal( App.viewPrint( ticket, 'title' ), 'some title <>&')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state' ), 'open')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state_id' ), 'open')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'not_existing' ), '-')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="11/07/2014 23:43">11/07/2014</time>')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'date' ), '02/07/2015')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'textarea' ), '<div>some new</div><div>line</div>')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'link1' ), '<a href="http://zammad.com" target="blank">closed</a>')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'link2' ), '<a href="http://zammad.com" target="blank">closed</a>')
|
||||||
|
|
||||||
|
let stub = sinon.stub(App.Config, 'get')
|
||||||
|
stub.withArgs('timezone_default').returns('Example/Timezone')
|
||||||
|
let attr = App.Ticket.configure_attributes.find(e => { return e.name == 'updated_at' })
|
||||||
|
attr.include_timezone = true
|
||||||
|
|
||||||
|
assert.equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="11/07/2014 23:43 Example/Timezone" timezone="Example/Timezone">11/07/2014</time>')
|
||||||
|
|
||||||
|
attr.include_timezone = false
|
||||||
|
stub.restore()
|
||||||
|
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'id' ), 1000)
|
||||||
|
assert.equal( App.viewPrint( ticket, 'title' ), 'some title <>&')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state' ), 'offen')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state_id' ), 'offen')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'not_existing' ), '-')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'updated_at' ), '<time class="humanTimeFromNow " datetime="2014-11-07T23:43:08.000Z" title="07.11.2014 23:43">07.11.2014</time>')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'date' ), '07.02.2015')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'textarea' ), '<div>some new</div><div>line</div>')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'link1' ), '<a href="http://zammad.com" target="blank">geschlossen</a>')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'link2' ), '<a href="http://zammad.com" target="blank">closed</a>')
|
||||||
|
|
||||||
|
|
||||||
|
App.i18n.set('en-us')
|
||||||
|
ticket.state_id = 3
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state' ), 'closed <>&')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state_id' ), 'closed <>&')
|
||||||
|
|
||||||
|
App.i18n.set('de')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state' ), 'closed <>&')
|
||||||
|
assert.equal( App.viewPrint( ticket, 'state_id' ), 'closed <>&')
|
||||||
|
|
||||||
|
// normal string
|
||||||
|
data = {
|
||||||
|
a: 1,
|
||||||
|
b: 'abc',
|
||||||
|
c: {
|
||||||
|
displayName: function() { return "my displayName <>&" }
|
||||||
|
},
|
||||||
|
}
|
||||||
|
assert.equal( App.viewPrint( data, 'a' ), 1)
|
||||||
|
assert.equal( App.viewPrint( data, 'b' ), 'abc')
|
||||||
|
assert.equal( App.viewPrint( data, 'c' ), 'my displayName <>&')
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
82
public/assets/tests/qunit/session.js
Normal file
82
public/assets/tests/qunit/session.js
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
window.onload = function() {
|
||||||
|
|
||||||
|
QUnit.test('test current user behaviour by updating session user via assets', assert => {
|
||||||
|
|
||||||
|
// Wenn App.User updated through asset and set as session user
|
||||||
|
// expect App.Session.get with new values
|
||||||
|
App.User.refresh([{
|
||||||
|
"login": "hh@example.com",
|
||||||
|
"firstname": "Harald",
|
||||||
|
"lastname": "Habebe",
|
||||||
|
"email": "hh@example.com",
|
||||||
|
"role_ids": [ 1, 2, 4 ],
|
||||||
|
"group_ids": [ 1 ],
|
||||||
|
"active": true,
|
||||||
|
"updated_at": "2017-02-09T09:17:04.770Z",
|
||||||
|
"address": "",
|
||||||
|
"vip": false,
|
||||||
|
"custom_key": undefined,
|
||||||
|
"asdf": "",
|
||||||
|
"id": 6
|
||||||
|
}]);
|
||||||
|
App.Session.set(6)
|
||||||
|
assert.equal(App.Session.get('id'), 6)
|
||||||
|
assert.equal(App.Session.get('login'), 'hh@example.com')
|
||||||
|
assert.equal(App.Session.get('vip'), false)
|
||||||
|
assert.equal(App.Session.get('custom_key'), undefined)
|
||||||
|
assert.equal(App.Session.get().id, 6)
|
||||||
|
assert.equal(App.Session.get().login, 'hh@example.com')
|
||||||
|
assert.equal(App.Session.get().custom_key, undefined)
|
||||||
|
assert.equal(App.Session.get().not_existing, undefined)
|
||||||
|
|
||||||
|
// Wenn App.User updated through asset
|
||||||
|
// expect App.Session.get with new values
|
||||||
|
App.User.refresh([{
|
||||||
|
"login": "hh_new@example.com",
|
||||||
|
"firstname": "Harald",
|
||||||
|
"lastname": "Habebe",
|
||||||
|
"email": "hh_new@example.com",
|
||||||
|
"role_ids": [ 1, 2, 4 ],
|
||||||
|
"group_ids": [ 1 ],
|
||||||
|
"active": true,
|
||||||
|
"updated_at": "2017-02-09T09:17:04.770Z",
|
||||||
|
"address": "",
|
||||||
|
"vip": false,
|
||||||
|
"custom_key": undefined,
|
||||||
|
"asdf": "",
|
||||||
|
"id": 6
|
||||||
|
}]);
|
||||||
|
assert.equal(App.Session.get('id'), 6)
|
||||||
|
assert.equal(App.Session.get('login'), 'hh_new@example.com')
|
||||||
|
assert.equal(App.Session.get('vip'), false)
|
||||||
|
assert.equal(App.Session.get('custom_key'), undefined)
|
||||||
|
assert.equal(App.Session.get().id, 6)
|
||||||
|
assert.equal(App.Session.get().login, 'hh_new@example.com')
|
||||||
|
assert.equal(App.Session.get().custom_key, undefined)
|
||||||
|
assert.equal(App.Session.get().not_existing, undefined)
|
||||||
|
|
||||||
|
// Wenn App.Session is reseted to inital
|
||||||
|
// expect undefined for all
|
||||||
|
App.Session.init()
|
||||||
|
assert.equal(App.Session.get(), undefined)
|
||||||
|
assert.equal(App.Session.get('id'), undefined)
|
||||||
|
assert.equal(App.Session.get('login'), undefined)
|
||||||
|
assert.equal(App.Session.get('vip'), undefined)
|
||||||
|
assert.equal(App.Session.get('custom_key'), undefined)
|
||||||
|
|
||||||
|
// When App.Session is set and set to undefined or null,
|
||||||
|
// expect @current() to return null
|
||||||
|
App.Session.set(6)
|
||||||
|
App.Session.set(undefined)
|
||||||
|
assert.equal(App.User.current(), null, 'with no active session')
|
||||||
|
App.Session.set(null)
|
||||||
|
assert.equal(App.User.current(), null, 'with no active session')
|
||||||
|
|
||||||
|
// When App.Session is set with an invalid (not existing) user ID,
|
||||||
|
// expect @current() to return null
|
||||||
|
App.Session.set(100)
|
||||||
|
assert.equal(App.User.current(), null, 'with invalid session user ID')
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
844
public/assets/tests/qunit/table.js
Normal file
844
public/assets/tests/qunit/table.js
Normal file
|
@ -0,0 +1,844 @@
|
||||||
|
// form
|
||||||
|
QUnit.test('table test', assert => {
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table simple I</h1><div id="table1"></div>')
|
||||||
|
var el = $('#table1')
|
||||||
|
App.TicketPriority.refresh( [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: '1 low',
|
||||||
|
note: 'some note 1',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: '2 normal',
|
||||||
|
note: 'some note 2',
|
||||||
|
active: false,
|
||||||
|
created_at: '2014-06-10T10:17:34.000Z',
|
||||||
|
},
|
||||||
|
] )
|
||||||
|
var rowClick = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('rowClick', id, e.target)
|
||||||
|
};
|
||||||
|
var rowDblClick = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('rowDblClick', id, e.target)
|
||||||
|
};
|
||||||
|
var rowMouseover = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('rowMouseover', id, e.target)
|
||||||
|
};
|
||||||
|
var rowMouseout = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('rowMouseout', id, e.target)
|
||||||
|
};
|
||||||
|
var colClick = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('colClick', id, e.target)
|
||||||
|
};
|
||||||
|
var colDblClick = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('colDblClick', id, e.target)
|
||||||
|
};
|
||||||
|
var colMouseover = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('colMouseover', id, e.target)
|
||||||
|
};
|
||||||
|
var colMouseout = function (id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('colMouseout', id, e.target)
|
||||||
|
};
|
||||||
|
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['name', 'created_at', 'active'],
|
||||||
|
model: App.TicketPriority,
|
||||||
|
objects: App.TicketPriority.search({sortBy:'name', order: 'ASC'}),
|
||||||
|
checkbox: false,
|
||||||
|
radio: false,
|
||||||
|
bindRow: {
|
||||||
|
events: {
|
||||||
|
'click': rowClick,
|
||||||
|
'mouseover': rowMouseover,
|
||||||
|
'mouseout': rowMouseout,
|
||||||
|
'dblclick': rowDblClick,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
bindCol: {
|
||||||
|
name: {
|
||||||
|
events: {
|
||||||
|
'click': colClick,
|
||||||
|
'mouseover': colMouseover,
|
||||||
|
'mouseout': colMouseout,
|
||||||
|
'dblclick': colDblClick,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created_at: {
|
||||||
|
events: {
|
||||||
|
'mouseover': colMouseover,
|
||||||
|
'mouseout': colMouseout,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Erstellt', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), '1 niedrig', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'true', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), '2 normal', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'false', 'check row 2')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table simple II</h1><div id="table2"></div>')
|
||||||
|
el = $('#table2')
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['name', 'created_at', 'active'],
|
||||||
|
model: App.TicketPriority,
|
||||||
|
objects: App.TicketPriority.search({sortBy:'name', order: 'DESC'}),
|
||||||
|
checkbox: false,
|
||||||
|
radio: false,
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Erstellt', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), '2 normal', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'false', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), '1 niedrig', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'true', 'check row 2')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table simple III</h1><div id="table3"></div>')
|
||||||
|
el = $('#table3')
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
model: App.TicketPriority,
|
||||||
|
objects: App.TicketPriority.search({sortBy:'created_at', order: 'DESC'}),
|
||||||
|
checkbox: false,
|
||||||
|
radio: false,
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
||||||
|
assert.notEqual( el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Erstellt', 'check header')
|
||||||
|
assert.notEqual( el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 1, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), '2 normal', 'check row 2')
|
||||||
|
assert.notEqual( el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '?', 'check row 2')
|
||||||
|
assert.notEqual( el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'true', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 1, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), '1 niedrig', 'check row 1')
|
||||||
|
assert.notEqual( el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '?', 'check row 1')
|
||||||
|
assert.notEqual( el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'false', 'check row 1')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
App.Group.refresh( [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: 'group 1',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: 'group 2',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
App.User.refresh( [
|
||||||
|
{
|
||||||
|
id: 55,
|
||||||
|
login: 'login55',
|
||||||
|
firstname: 'firstname55',
|
||||||
|
lastname: 'lastname55',
|
||||||
|
email: 'email55',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 56,
|
||||||
|
login: 'login56',
|
||||||
|
firstname: 'firstname56',
|
||||||
|
lastname: 'lastname56',
|
||||||
|
email: 'email56',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
App.TicketState.refresh( [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: 'new',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: 'open',
|
||||||
|
note: 'some note 2',
|
||||||
|
active: false,
|
||||||
|
created_at: '2014-06-10T10:17:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
App.Ticket.refresh( [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: 'some title 1',
|
||||||
|
number: '4711',
|
||||||
|
priority_id: 1,
|
||||||
|
owner_id: 55,
|
||||||
|
customer_id: 56,
|
||||||
|
state_id: 1,
|
||||||
|
group_id: 2,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
title: 'some title 3',
|
||||||
|
number: '4713',
|
||||||
|
priority_id: 2,
|
||||||
|
owner_id: 56,
|
||||||
|
state_id: 1,
|
||||||
|
group_id: 2,
|
||||||
|
created_at: '2014-07-11T11:19:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
title: 'some title 2',
|
||||||
|
number: '4712',
|
||||||
|
priority_id: 1,
|
||||||
|
state_id: 2,
|
||||||
|
group_id: 1,
|
||||||
|
created_at: '2014-06-10T11:19:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
$('#qunit').append('<hr><h1>table complex I</h1><div id="table4"></div>')
|
||||||
|
el = $('#table4')
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
||||||
|
model: App.Ticket,
|
||||||
|
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
||||||
|
checkbox: true,
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), '', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), '#', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Titel', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Besitzer', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Kunde', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(6)').text().trim(), 'Priorität', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(7)').text().trim(), 'Gruppe', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(8)').text().trim(), 'Status', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(9)').text().trim(), 'Erstellt am', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 9, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').val(), '3', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').prop('checked'), '', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), '', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '4713', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'some title 3', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'firstname56 lastname56', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(6)').text().trim(), '2 normal', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(7)').text().trim(), 'group 2', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(8)').text().trim(), 'neu', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(9)').text().trim(), '11.07.2014', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 9, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '4712', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'some title 2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), '-', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(6)').text().trim(), '1 niedrig', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(7)').text().trim(), 'group 1', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(8)').text().trim(), 'offen', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(9)').text().trim(), '10.06.2014', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td').length, 9, 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').val(), '1', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').prop('checked'), '', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1)').text().trim(), '', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(2)').text().trim(), '4711', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(3)').text().trim(), 'some title 1', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(4)').text().trim(), 'firstname55 lastname55', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(5)').text().trim(), 'firstname56 lastname56', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(6)').text().trim(), '1 niedrig', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(7)').text().trim(), 'group 2', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(8)').text().trim(), 'neu', 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(9)').text().trim(), '10.06.2014', 'check row 3')
|
||||||
|
|
||||||
|
el.find('input[name="bulk_all"]').click()
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').prop('checked'), true, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').val(), '3', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), true, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').prop('checked'), true, 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').val(), '1', 'check row 3')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table complex II</h1><div id="table5"></div>')
|
||||||
|
el = $('#table5')
|
||||||
|
var clickCheckbox = function (id, checked, e) {
|
||||||
|
console.log('clickCheckbox', id, checked, e.target)
|
||||||
|
};
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
||||||
|
model: App.Ticket,
|
||||||
|
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
||||||
|
checkbox: true,
|
||||||
|
groupBy: 'group',
|
||||||
|
bindCheckbox: {
|
||||||
|
events: {
|
||||||
|
'click': clickCheckbox,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), '', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), '#', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Titel', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Besitzer', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Kunde', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(6)').text().trim(), 'Priorität', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(7)').text().trim(), 'Status', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(8)').text().trim(), 'Erstellt am', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 1, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'group 1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 8, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '4712', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'some title 2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), '-', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(6)').text().trim(), '1 niedrig', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(7)').text().trim(), 'offen', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(8)').text().trim(), '10.06.2014', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td').length, 1, 'check row 3')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1)').text().trim(), 'group 2', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td').length, 8, 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').val(), '3', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').prop('checked'), '', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1)').text().trim(), '', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(2)').text().trim(), '4713', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(3)').text().trim(), 'some title 3', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(4)').text().trim(), 'firstname56 lastname56', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(6)').text().trim(), '2 normal', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(7)').text().trim(), 'neu', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(8)').text().trim(), '11.07.2014', 'check row 4')
|
||||||
|
|
||||||
|
el.find('input[name="bulk"]:eq(1)').click()
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').prop('checked'), true, 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').val(), '3', 'check row 4')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').prop('checked'), '', 'check row 5')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').val(), '1', 'check row 5')
|
||||||
|
el.find('tbody > tr:nth-child(5) > td:nth-child(1) label').click()
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').prop('checked'), true, 'check row 5')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').val(), '1', 'check row 5')
|
||||||
|
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table Group By Direction DESC</h1><div id="table6"></div>')
|
||||||
|
el = $('#table6')
|
||||||
|
var clickCheckbox = function (id, checked, e) {
|
||||||
|
console.log('clickCheckbox', id, checked, e.target)
|
||||||
|
};
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
||||||
|
model: App.Ticket,
|
||||||
|
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
||||||
|
groupBy: 'priority',
|
||||||
|
groupDirection: 'DESC',
|
||||||
|
})
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), '2 normal', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1)').text().trim(), '1 niedrig', 'check row 3')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table Group By Direction ASC</h1><div id="table7"></div>')
|
||||||
|
el = $('#table7')
|
||||||
|
var clickCheckbox = function (id, checked, e) {
|
||||||
|
console.log('clickCheckbox', id, checked, e.target)
|
||||||
|
};
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
||||||
|
model: App.Ticket,
|
||||||
|
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
||||||
|
groupBy: 'priority',
|
||||||
|
groupDirection: 'ASC',
|
||||||
|
})
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), '1 niedrig', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1)').text().trim(), '2 normal', 'check row 4')
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('table test 2.1', assert => {
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table with hash</h1><div id="table-hash2_1"></div>')
|
||||||
|
var el = $('#table-hash2_1')
|
||||||
|
App.Group.refresh( [
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
name: 'group 5',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
App.Channel.configure_delete = true
|
||||||
|
App.Channel.configure_clone = false
|
||||||
|
App.Channel.configure_attributes = [
|
||||||
|
{ name: 'adapter', display: 'Type', tag: 'select', multiple: false, null: false, options: { IMAP: 'IMAP', POP3: 'POP3' } },
|
||||||
|
{ name: 'options::host', display: 'Host', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::user', display: 'User', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::password', display: 'Password', tag: 'input', type: 'password', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::ssl', display: 'SSL', tag: 'select', multiple: false, null: true, options: { true: 'yes', false: 'no' }, translate: true, default: true},
|
||||||
|
{ name: 'options::folder', display: 'Folder', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: false, nulloption: true, relation: 'Group' },
|
||||||
|
{ name: 'active', display: 'Active', tag: 'select', multiple: false, null: false, options: { true: 'yes', false: 'no' }, translate: true, default: true },
|
||||||
|
]
|
||||||
|
|
||||||
|
App.Channel.refresh( [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
adapter: 'adapter1',
|
||||||
|
options: {
|
||||||
|
host: 'host1',
|
||||||
|
user: 'user1',
|
||||||
|
},
|
||||||
|
group_id: 5,
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
adapter: 'adapter2',
|
||||||
|
options: {
|
||||||
|
host: 'host2',
|
||||||
|
user: 'user2',
|
||||||
|
},
|
||||||
|
group_id: 5,
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
] )
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['adapter', 'options::host', 'options::user', 'active'],
|
||||||
|
model: App.Channel,
|
||||||
|
objects: App.Channel.search({sortBy:'adapter', order: 'ASC'}),
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Typ', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Host', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Benutzer', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Aktiv', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Aktion', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 5, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'adapter1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'host1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'user1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'ja', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5)').text().trim(), '', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-delete').length, 1, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-clone').length, 0, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 5, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'adapter2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'host2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'user2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), 'ja', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-delete').length, 1, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-clone').length, 0, 'check row 1')
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('table test 2.2', assert => {
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table with hash</h1><div id="table-hash2_2"></div>')
|
||||||
|
var el = $('#table-hash2_2')
|
||||||
|
App.Group.refresh( [
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
name: 'group 5',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
App.Channel.configure_delete = false
|
||||||
|
App.Channel.configure_clone = true
|
||||||
|
App.Channel.configure_attributes = [
|
||||||
|
{ name: 'adapter', display: 'Type', tag: 'select', multiple: false, null: false, options: { IMAP: 'IMAP', POP3: 'POP3' } },
|
||||||
|
{ name: 'options::host', display: 'Host', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::user', display: 'User', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::password', display: 'Password', tag: 'input', type: 'password', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::ssl', display: 'SSL', tag: 'select', multiple: false, null: true, options: { true: 'yes', false: 'no' }, translate: true, default: true},
|
||||||
|
{ name: 'options::folder', display: 'Folder', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: false, nulloption: true, relation: 'Group' },
|
||||||
|
{ name: 'active', display: 'Active', tag: 'select', multiple: false, null: false, options: { true: 'yes', false: 'no' }, translate: true, default: true },
|
||||||
|
]
|
||||||
|
|
||||||
|
App.Channel.refresh( [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
adapter: 'adapter1',
|
||||||
|
options: {
|
||||||
|
host: 'host1',
|
||||||
|
user: 'user1',
|
||||||
|
},
|
||||||
|
group_id: 5,
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
adapter: 'adapter2',
|
||||||
|
options: {
|
||||||
|
host: 'host2',
|
||||||
|
user: 'user2',
|
||||||
|
},
|
||||||
|
group_id: 5,
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
] )
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['adapter', 'options::host', 'options::user', 'active'],
|
||||||
|
model: App.Channel,
|
||||||
|
objects: App.Channel.search({sortBy:'adapter', order: 'ASC'}),
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Typ', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Host', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Benutzer', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Aktiv', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Aktion', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 5, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'adapter1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'host1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'user1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'ja', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5)').text().trim(), '', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-delete').length, 0, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-clone').length, 1, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 5, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'adapter2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'host2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'user2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), 'ja', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-delete').length, 0, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-clone').length, 1, 'check row 1')
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('table test 3', assert => {
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table with hash</h1><div id="table-hash2"></div>')
|
||||||
|
var el = $('#table-hash2')
|
||||||
|
App.Group.refresh( [
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
name: 'group 5',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
App.Channel.configure_delete = true
|
||||||
|
App.Channel.configure_clone = true
|
||||||
|
App.Channel.configure_attributes = [
|
||||||
|
{ name: 'adapter', display: 'Type', tag: 'select', multiple: false, null: false, options: { IMAP: 'IMAP', POP3: 'POP3' } },
|
||||||
|
{ name: 'options::host', display: 'Host', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::user', display: 'User', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::password', display: 'Password', tag: 'input', type: 'password', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'options::ssl', display: 'SSL', tag: 'select', multiple: false, null: true, options: { true: 'yes', false: 'no' }, translate: true, default: true},
|
||||||
|
{ name: 'options::folder', display: 'Folder', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
||||||
|
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: false, nulloption: true, relation: 'Group' },
|
||||||
|
{ name: 'active', display: 'Active', tag: 'select', multiple: false, null: false, options: { true: 'yes', false: 'no' }, translate: true, default: true },
|
||||||
|
]
|
||||||
|
|
||||||
|
App.Channel.refresh( [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
adapter: 'adapter1',
|
||||||
|
options: {
|
||||||
|
host: 'host1',
|
||||||
|
user: 'user1',
|
||||||
|
},
|
||||||
|
group_id: 5,
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
adapter: 'adapter2',
|
||||||
|
options: {
|
||||||
|
host: 'host2',
|
||||||
|
user: 'user2',
|
||||||
|
},
|
||||||
|
group_id: 5,
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
] )
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['adapter', 'options::host', 'options::user', 'active'],
|
||||||
|
model: App.Channel,
|
||||||
|
objects: App.Channel.search({sortBy:'adapter', order: 'ASC'}),
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Typ', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Host', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Benutzer', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Aktiv', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Aktion', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 5, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'adapter1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'host1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'user1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'ja', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions .js-delete').length, 1, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions .js-clone').length, 1, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 5, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'adapter2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'host2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'user2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), 'ja', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions .js-delete').length, 1, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions .js-clone').length, 1, 'check row 2')
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('table test 4', assert => {
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table with link</h1><div id="table-link1"></div>')
|
||||||
|
var el = $('#table-link1')
|
||||||
|
App.EmailAddress.refresh( [
|
||||||
|
{
|
||||||
|
id: 55,
|
||||||
|
realname: 'realname 55',
|
||||||
|
email: 'email 55',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 56,
|
||||||
|
realname: 'realname 56',
|
||||||
|
email: 'email 56',
|
||||||
|
active: true,
|
||||||
|
created_at: '2014-06-10T11:17:34.000Z',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
var callbackHeader = function (header) {
|
||||||
|
console.log('current header is', header);
|
||||||
|
// add new header item
|
||||||
|
var attribute = {
|
||||||
|
name: 'some name',
|
||||||
|
display: 'Some Name',
|
||||||
|
};
|
||||||
|
header.push(attribute);
|
||||||
|
console.log('new header is', header);
|
||||||
|
return header
|
||||||
|
}
|
||||||
|
var callbackAttributes = function(value, object, attribute, header, refObject) {
|
||||||
|
console.log('data of item col', value, object, attribute, header, refObject)
|
||||||
|
value = ' '
|
||||||
|
attribute.class = 'glyphicon glyphicon-user'
|
||||||
|
attribute.link = '#'
|
||||||
|
attribute.title = App.i18n.translateInline('Switch to')
|
||||||
|
if (object.id == 55) {
|
||||||
|
attribute.data = {
|
||||||
|
some: 'value55',
|
||||||
|
xxx: 55,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
attribute.data = {
|
||||||
|
some: 'value56',
|
||||||
|
xxx: 56,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
var switchTo = function(id, e) {
|
||||||
|
e.preventDefault()
|
||||||
|
console.log('switchTo with id', id, e.target)
|
||||||
|
//@disconnectClient()
|
||||||
|
//App.Auth._logout()
|
||||||
|
//window.location = App.Config.get('api_path') + '/sessions/switch/' + id
|
||||||
|
}
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
model: App.EmailAddress,
|
||||||
|
objects: App.EmailAddress.search({sortBy:'realname', order: 'ASC'}),
|
||||||
|
callbackHeader: [callbackHeader],
|
||||||
|
callbackAttributes: {
|
||||||
|
'some name': [ callbackAttributes ]
|
||||||
|
},
|
||||||
|
bindCol: {
|
||||||
|
'some name': {
|
||||||
|
events: {
|
||||||
|
'click': switchTo,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Anzeigename', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Some Name', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'realname 55', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'email 55', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), '', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').hasClass('glyphicon-user'), true, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').hasClass('glyphicon'), true, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').attr('title'), 'Umschalten zu', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').data('some'), 'value55', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').data('xxx'), '55', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'realname 56', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'email 56', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), '', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').hasClass('glyphicon-user'), true, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').hasClass('glyphicon'), true, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').attr('title'), 'Umschalten zu', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').data('some'), 'value56', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').data('xxx'), '56', 'check row 2')
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('table test 5', assert => {
|
||||||
|
App.i18n.set('de-de')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>table with data</h1><div id="table-data1"></div>')
|
||||||
|
var el = $('#table-data1')
|
||||||
|
|
||||||
|
data = [
|
||||||
|
{ name: 'some name 1', data: 'some data 1', active: true },
|
||||||
|
{ name: 'some name 2', data: 'some data 2', active: false },
|
||||||
|
{ name: 'some name 3', data: 'some data 3', active: true },
|
||||||
|
]
|
||||||
|
new App.ControllerTable({
|
||||||
|
el: el,
|
||||||
|
overview: ['name', 'data', 'active'],
|
||||||
|
attribute_list: [
|
||||||
|
{ name: 'name', display: 'Name', type: 'text', style: 'width: 10%' },
|
||||||
|
{ name: 'data', display: 'Data', type: 'text' },
|
||||||
|
{ name: 'active', display: 'Active', type: 'text' },
|
||||||
|
],
|
||||||
|
objects: data
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.equal(el.find('table > thead > tr').length, 1, 'row count')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Data', 'check header')
|
||||||
|
assert.equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), 'some name 1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'some data 1', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'true', 'check row 1')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), 'some name 2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'some data 2', 'check row 2')
|
||||||
|
assert.equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'false', 'check row 2')
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('table test 6/7', assert => {
|
||||||
|
$('#qunit').append('<hr><h1>sotable table with data</h1><div id="table-data6"></div>')
|
||||||
|
var el_head_sortable = $('#table-data6')
|
||||||
|
|
||||||
|
$('#qunit').append('<hr><h1>not sortable table with data</h1><div id="table-data7"></div>')
|
||||||
|
var el_not_head_sortable = $('#table-data7')
|
||||||
|
|
||||||
|
data = [
|
||||||
|
{ name: 'a item', data: 'g data', active: true },
|
||||||
|
{ name: 'b item', data: 'b data', active: false },
|
||||||
|
{ name: 'c item', data: 'z data', active: false },
|
||||||
|
{ name: 'd item', data: '', active: false },
|
||||||
|
]
|
||||||
|
|
||||||
|
new App.ControllerTable({
|
||||||
|
tableId: 'a',
|
||||||
|
el: el_head_sortable,
|
||||||
|
overview: ['name', 'data', 'active'],
|
||||||
|
attribute_list: [
|
||||||
|
{ name: 'name', display: 'Name', type: 'text', style: 'width: 10%', unsortable: true },
|
||||||
|
{ name: 'data', display: 'Data', type: 'text' },
|
||||||
|
{ name: 'active', display: 'Active', type: 'text' },
|
||||||
|
],
|
||||||
|
objects: data
|
||||||
|
});
|
||||||
|
|
||||||
|
new App.ControllerTable({
|
||||||
|
tableId: 'b',
|
||||||
|
el: el_not_head_sortable,
|
||||||
|
overview: ['name', 'data', 'active'],
|
||||||
|
attribute_list: [
|
||||||
|
{ name: 'name', display: 'Name', type: 'text', style: 'width: 10%', unsortable: true },
|
||||||
|
{ name: 'data', display: 'Data', type: 'text' },
|
||||||
|
{ name: 'active', display: 'Active', type: 'text' },
|
||||||
|
],
|
||||||
|
objects: data,
|
||||||
|
dndCallback: function() { return true }
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.equal(el_head_sortable.find('tbody > tr:nth-child(1) > td:first').text().trim(), 'a item', 'check row 1')
|
||||||
|
assert.equal(el_not_head_sortable.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'a item', 'check row 1')
|
||||||
|
|
||||||
|
assert.ok(_.isEqual(list_items(el_head_sortable, 1), ['a item', 'b item', 'c item', 'd item']), 'sortable table is rendered correctly')
|
||||||
|
assert.ok(_.isEqual(list_items(el_not_head_sortable, 2), ['a item', 'b item', 'c item', 'd item']), 'unsortable table is rendered correctly')
|
||||||
|
|
||||||
|
click_sort(el_head_sortable, 2)
|
||||||
|
click_sort(el_not_head_sortable, 3)
|
||||||
|
|
||||||
|
assert.ok(_.isEqual(list_items(el_head_sortable, 1), ['b item', 'a item', 'c item', 'd item']), 'sortable table is sorted')
|
||||||
|
assert.ok(_.isEqual(list_items(el_not_head_sortable, 2), ['a item', 'b item', 'c item', 'd item']), 'unsortable table is not sorted')
|
||||||
|
|
||||||
|
click_sort(el_head_sortable, 3)
|
||||||
|
assert.ok(_.isEqual(list_items(el_head_sortable, 1), ['b item', 'c item', 'd item', 'a item']), 'sorting by boolean column works')
|
||||||
|
|
||||||
|
click_sort(el_head_sortable, 1)
|
||||||
|
assert.ok(_.isEqual(list_items(el_head_sortable, 1), ['b item', 'c item', 'd item', 'a item']), 'sorting on name column is disabled')
|
||||||
|
});
|
||||||
|
|
||||||
|
function click_sort(table, column_number) {
|
||||||
|
table
|
||||||
|
.find(`table > thead > tr > th:nth-child(${column_number}) > .js-sort`)
|
||||||
|
.click()
|
||||||
|
}
|
||||||
|
|
||||||
|
function list_items(table, column_number) {
|
||||||
|
return table
|
||||||
|
.find(`tbody > tr > td:nth-child(${column_number})`)
|
||||||
|
.text()
|
||||||
|
.split("\n")
|
||||||
|
.filter(elem => elem.match(/[\w]+/))
|
||||||
|
.map(elem => elem.trim())
|
||||||
|
}
|
1777
public/assets/tests/qunit/table_extended.js
Normal file
1777
public/assets/tests/qunit/table_extended.js
Normal file
File diff suppressed because it is too large
Load diff
316
public/assets/tests/qunit/taskbar.js
Normal file
316
public/assets/tests/qunit/taskbar.js
Normal file
|
@ -0,0 +1,316 @@
|
||||||
|
window.onload = function() {
|
||||||
|
|
||||||
|
QUnit.test( "taskbar basic tests", assert => {
|
||||||
|
// create task bar div
|
||||||
|
$('#qunit').append('<hr><h1>taskbar basic tests</h1><div id="taskbar1"></div>')
|
||||||
|
App.TaskManager.init({
|
||||||
|
el: $('#taskbar1'),
|
||||||
|
offlineModus: true,
|
||||||
|
force: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
// add tasks
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey1',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#1',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#1',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
// verify
|
||||||
|
task = App.TaskManager.get('TestKey1')
|
||||||
|
assert.equal(task.notify, false)
|
||||||
|
assert.deepEqual(task.state, undefined)
|
||||||
|
assert.deepEqual(task.params, { "message": "#1", "shown": true })
|
||||||
|
|
||||||
|
// update
|
||||||
|
App.TaskManager.update('TestKey1', { 'state': 'abc' })
|
||||||
|
App.TaskManager.update('TestKey1', { 'params': { a: 12 } })
|
||||||
|
App.TaskManager.notify('TestKey1')
|
||||||
|
|
||||||
|
// verify
|
||||||
|
task = App.TaskManager.get('TestKey1')
|
||||||
|
assert.equal(task.notify, true)
|
||||||
|
assert.deepEqual(task.state, 'abc')
|
||||||
|
assert.deepEqual(task.params, { "a": 12 })
|
||||||
|
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey2',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#2',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 2, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
// check task history
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), '#/some/url/#2')
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), '#/some/url/#1')
|
||||||
|
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey3',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#3',
|
||||||
|
},
|
||||||
|
show: false,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 2, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey3',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#3',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 3, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey4',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#4',
|
||||||
|
},
|
||||||
|
show: false,
|
||||||
|
persistent: true,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 3, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey5',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#5',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: true,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 4, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#5',show:'true',hide:'false',active:'true'")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey6',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#6',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 5, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
// remove task#2
|
||||||
|
App.TaskManager.remove('TestKey2')
|
||||||
|
|
||||||
|
assert.equal($('#qunit .content').length, 4, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
// activate task#3
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey3',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#3',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 4, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
|
||||||
|
|
||||||
|
// activate task#1
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey1',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#1',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 4, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#1',show:'true',hide:'true',active:'true'")
|
||||||
|
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'true'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
assert.equal($('#qunit #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'true',active:'false'", "check active content!")
|
||||||
|
|
||||||
|
// remove task#1
|
||||||
|
App.TaskManager.remove('TestKey1')
|
||||||
|
|
||||||
|
// verify if task#3 is active
|
||||||
|
assert.equal($('#qunit .content').length, 3, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 0, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "")
|
||||||
|
|
||||||
|
// remove task#3
|
||||||
|
App.TaskManager.remove('TestKey3')
|
||||||
|
|
||||||
|
// verify if task#5 is active
|
||||||
|
assert.equal($('#qunit .content').length, 2, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 0, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "")
|
||||||
|
|
||||||
|
// remove task#5 // can not get removed because of permanent task
|
||||||
|
App.TaskManager.remove('TestKey5')
|
||||||
|
|
||||||
|
// verify if task#5 is active
|
||||||
|
assert.equal($('#qunit .content').length, 2, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 0, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "")
|
||||||
|
|
||||||
|
// create task#7
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKey7',
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: '#7',
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
assert.equal($('#qunit .content').length, 3, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 1, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "some test controller message:'#7',show:'true',hide:'false',active:'true'", "check active content!")
|
||||||
|
|
||||||
|
// remove task#7
|
||||||
|
App.TaskManager.remove('TestKey7')
|
||||||
|
|
||||||
|
// verify if task#5 is active
|
||||||
|
assert.equal($('#qunit .content').length, 2, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').length, 0, "check available active contents")
|
||||||
|
assert.equal($('#qunit .content.active').text(), "")
|
||||||
|
|
||||||
|
// check task history
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), '#/some/url/#6')
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), '#/some/url/#5')
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), '#/some/url/#6')
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), '#/some/url/#6')
|
||||||
|
|
||||||
|
// remove task#6
|
||||||
|
App.TaskManager.remove('TestKey6')
|
||||||
|
|
||||||
|
// check task history
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), false)
|
||||||
|
assert.equal(App.TaskManager.nextTaskUrl(), false)
|
||||||
|
|
||||||
|
// check max tabs
|
||||||
|
var times = 5;
|
||||||
|
App.TaskManager.tasksAutoCleanupDelayTime(200)
|
||||||
|
App.TaskManager.tasksAutoCleanupTaskMax(3)
|
||||||
|
|
||||||
|
for(var i=0; i < times; i++){
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKeyLoop' + i,
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: "#" + i,
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
assert.equal(App.TaskManager.all().length, 5)
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
App.Delay.set(function() {
|
||||||
|
QUnit.test( "taskbar check max tabs 2", assert => {
|
||||||
|
|
||||||
|
assert.equal(App.TaskManager.all().length, 3)
|
||||||
|
|
||||||
|
var times = 5;
|
||||||
|
for(var i=0; i < times; i++){
|
||||||
|
App.TaskManager.execute({
|
||||||
|
key: 'TestKeyLoop2' + i,
|
||||||
|
controller: 'TestController1',
|
||||||
|
params: {
|
||||||
|
message: "#" + i,
|
||||||
|
changedState: true
|
||||||
|
},
|
||||||
|
show: true,
|
||||||
|
persistent: false,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
assert.equal(App.TaskManager.all().length, 8)
|
||||||
|
|
||||||
|
})
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
App.Delay.set(function() {
|
||||||
|
QUnit.test( "taskbar check max tabs 5", assert => {
|
||||||
|
|
||||||
|
assert.equal(App.TaskManager.all().length, 5)
|
||||||
|
|
||||||
|
// destroy task bar
|
||||||
|
App.TaskManager.reset()
|
||||||
|
|
||||||
|
// check if any taskar exists
|
||||||
|
assert.equal($('#qunit .content').length, 0, "check available active contents")
|
||||||
|
})
|
||||||
|
}, 2000);
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
// text module
|
// text module
|
||||||
test('test text module behaviour with group_ids', function() {
|
QUnit.test('test text module behaviour with group_ids', assert => {
|
||||||
|
|
||||||
// active textmodule without group_ids
|
// active textmodule without group_ids
|
||||||
App.TextModule.refresh([
|
App.TextModule.refresh([
|
||||||
|
@ -46,9 +46,9 @@ test('test text module behaviour with group_ids', function() {
|
||||||
|
|
||||||
var currentCollection = textModule.currentCollection();
|
var currentCollection = textModule.currentCollection();
|
||||||
|
|
||||||
equal(currentCollection.length, 2, 'active textmodule')
|
assert.equal(currentCollection.length, 2, 'active textmodule')
|
||||||
equal(currentCollection[0].id, 1)
|
assert.equal(currentCollection[0].id, 1)
|
||||||
equal(currentCollection[1].id, 3)
|
assert.equal(currentCollection[1].id, 3)
|
||||||
|
|
||||||
// trigered TextModulePreconditionUpdate with group_id
|
// trigered TextModulePreconditionUpdate with group_id
|
||||||
|
|
||||||
|
@ -59,9 +59,9 @@ test('test text module behaviour with group_ids', function() {
|
||||||
|
|
||||||
currentCollection = textModule.currentCollection();
|
currentCollection = textModule.currentCollection();
|
||||||
|
|
||||||
equal(currentCollection.length, 2, 'trigered TextModulePreconditionUpdate with group_id')
|
assert.equal(currentCollection.length, 2, 'trigered TextModulePreconditionUpdate with group_id')
|
||||||
equal(currentCollection[0].id, 1)
|
assert.equal(currentCollection[0].id, 1)
|
||||||
equal(currentCollection[1].id, 3)
|
assert.equal(currentCollection[1].id, 3)
|
||||||
|
|
||||||
// trigered TextModulePreconditionUpdate with wrong group_id
|
// trigered TextModulePreconditionUpdate with wrong group_id
|
||||||
|
|
||||||
|
@ -72,8 +72,8 @@ test('test text module behaviour with group_ids', function() {
|
||||||
|
|
||||||
currentCollection = textModule.currentCollection();
|
currentCollection = textModule.currentCollection();
|
||||||
|
|
||||||
equal(currentCollection.length, 1, 'trigered TextModulePreconditionUpdate with wrong group_id')
|
assert.equal(currentCollection.length, 1, 'trigered TextModulePreconditionUpdate with wrong group_id')
|
||||||
equal(currentCollection[0].id, 1)
|
assert.equal(currentCollection[0].id, 1)
|
||||||
|
|
||||||
// trigered TextModulePreconditionUpdate with group_id but wrong taskKey
|
// trigered TextModulePreconditionUpdate with group_id but wrong taskKey
|
||||||
|
|
||||||
|
@ -84,8 +84,8 @@ test('test text module behaviour with group_ids', function() {
|
||||||
|
|
||||||
currentCollection = textModule.currentCollection();
|
currentCollection = textModule.currentCollection();
|
||||||
|
|
||||||
equal(currentCollection.length, 1, 'trigered TextModulePreconditionUpdate with group_id but wrong taskKey - nothing has changed')
|
assert.equal(currentCollection.length, 1, 'trigered TextModulePreconditionUpdate with group_id but wrong taskKey - nothing has changed')
|
||||||
equal(currentCollection[0].id, 1)
|
assert.equal(currentCollection[0].id, 1)
|
||||||
|
|
||||||
// trigered TextModulePreconditionUpdate without group_id
|
// trigered TextModulePreconditionUpdate without group_id
|
||||||
|
|
||||||
|
@ -96,8 +96,8 @@ test('test text module behaviour with group_ids', function() {
|
||||||
|
|
||||||
currentCollection = textModule.currentCollection();
|
currentCollection = textModule.currentCollection();
|
||||||
|
|
||||||
equal(currentCollection.length, 2, 'trigered TextModulePreconditionUpdate without group_id')
|
assert.equal(currentCollection.length, 2, 'trigered TextModulePreconditionUpdate without group_id')
|
||||||
equal(currentCollection[0].id, 1)
|
assert.equal(currentCollection[0].id, 1)
|
||||||
equal(currentCollection[1].id, 3)
|
assert.equal(currentCollection[1].id, 3)
|
||||||
|
|
||||||
});
|
});
|
|
@ -20,7 +20,7 @@ QUnit.module("ticket macro pending time check", hooks => {
|
||||||
return new Date(ticket.pending_time) - new Date()
|
return new Date(ticket.pending_time) - new Date()
|
||||||
}
|
}
|
||||||
|
|
||||||
test("5 days", assert => {
|
QUnit.test("5 days", assert => {
|
||||||
var rules = {
|
var rules = {
|
||||||
operator: "relative",
|
operator: "relative",
|
||||||
range: "day",
|
range: "day",
|
||||||
|
@ -30,7 +30,7 @@ QUnit.module("ticket macro pending time check", hooks => {
|
||||||
assert.equal(calculate_travel_on_ticket(rules), 60 * 60 * 24 * 5 * 1000)
|
assert.equal(calculate_travel_on_ticket(rules), 60 * 60 * 24 * 5 * 1000)
|
||||||
})
|
})
|
||||||
|
|
||||||
test("5 minutes", assert => {
|
QUnit.test("5 minutes", assert => {
|
||||||
var rules = {
|
var rules = {
|
||||||
operator: "relative",
|
operator: "relative",
|
||||||
range: "minute",
|
range: "minute",
|
||||||
|
@ -40,7 +40,7 @@ QUnit.module("ticket macro pending time check", hooks => {
|
||||||
assert.equal(calculate_travel_on_ticket(rules), 60 * 3 * 1000)
|
assert.equal(calculate_travel_on_ticket(rules), 60 * 3 * 1000)
|
||||||
});
|
});
|
||||||
|
|
||||||
test("10 hours", assert => {
|
QUnit.test("10 hours", assert => {
|
||||||
var rules = {
|
var rules = {
|
||||||
operator: "relative",
|
operator: "relative",
|
||||||
range: "hour",
|
range: "hour",
|
|
@ -186,7 +186,7 @@ window.onload = function() {
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var testContains = function (key, value, ticket) {
|
var testContains = function (assert, key, value, ticket) {
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
[key]: {
|
[key]: {
|
||||||
|
@ -196,7 +196,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -207,10 +207,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testIs = function (key, value, ticket) {
|
var testIs = function (assert, key, value, ticket) {
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
[key]: {
|
[key]: {
|
||||||
|
@ -220,7 +220,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -231,10 +231,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testPreConditionUser = function (key, specificValue, ticket, session) {
|
var testPreConditionUser = function (assert, key, specificValue, ticket, session) {
|
||||||
App.Session.set(6);
|
App.Session.set(6);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
|
@ -248,7 +248,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -261,7 +261,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -275,7 +275,7 @@ window.onload = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -288,7 +288,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -301,7 +301,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -312,7 +312,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -323,10 +323,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testPreConditionOrganization = function (key, specificValue, ticket, session) {
|
var testPreConditionOrganization = function (assert, key, specificValue, ticket, session) {
|
||||||
App.Session.set(6);
|
App.Session.set(6);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
|
@ -340,7 +340,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -353,7 +353,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -367,7 +367,7 @@ window.onload = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -380,7 +380,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -393,7 +393,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -404,7 +404,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -415,10 +415,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testPreConditionTags = function (key, ticket) {
|
var testPreConditionTags = function (assert, key, ticket) {
|
||||||
App.Session.set(6);
|
App.Session.set(6);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
|
@ -430,7 +430,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -441,7 +441,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -452,7 +452,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -463,7 +463,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -474,7 +474,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -485,7 +485,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -496,7 +496,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -507,7 +507,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -518,7 +518,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -529,7 +529,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -540,7 +540,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
|
@ -551,11 +551,11 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var testTime = function (key, value, ticket) {
|
var testTime = function (assert, key, value, ticket) {
|
||||||
valueDate = new Date(value);
|
valueDate = new Date(value);
|
||||||
compareDate = new Date( valueDate.setHours( valueDate.getHours() - 1 ) ).toISOString();
|
compareDate = new Date( valueDate.setHours( valueDate.getHours() - 1 ) ).toISOString();
|
||||||
setting = {
|
setting = {
|
||||||
|
@ -567,7 +567,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
valueDate = new Date(value);
|
valueDate = new Date(value);
|
||||||
compareDate = new Date( valueDate.setHours( valueDate.getHours() + 1 ) ).toISOString();
|
compareDate = new Date( valueDate.setHours( valueDate.getHours() + 1 ) ).toISOString();
|
||||||
|
@ -580,7 +580,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
valueDate = new Date(value);
|
valueDate = new Date(value);
|
||||||
compareDate = new Date( valueDate.setHours( valueDate.getHours() - 1 ) ).toISOString();
|
compareDate = new Date( valueDate.setHours( valueDate.getHours() - 1 ) ).toISOString();
|
||||||
|
@ -593,7 +593,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, false, result);
|
assert.equal(result, false, result);
|
||||||
|
|
||||||
valueDate = new Date(value);
|
valueDate = new Date(value);
|
||||||
compareDate = new Date( valueDate.setHours( valueDate.getHours() + 1 ) ).toISOString();
|
compareDate = new Date( valueDate.setHours( valueDate.getHours() + 1 ) ).toISOString();
|
||||||
|
@ -606,7 +606,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
|
|
||||||
valueDate = new Date(value);
|
valueDate = new Date(value);
|
||||||
compareDate = new Date( valueDate.setHours( valueDate.getHours() + 2 ) ).toISOString();
|
compareDate = new Date( valueDate.setHours( valueDate.getHours() + 2 ) ).toISOString();
|
||||||
|
@ -620,10 +620,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, true, result);
|
assert.equal(result, true, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testTimeBeforeRelative = function (key, value, range, expectedResult, ticket) {
|
var testTimeBeforeRelative = function (assert, key, value, range, expectedResult, ticket) {
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
[key]: {
|
[key]: {
|
||||||
|
@ -634,10 +634,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, expectedResult, result);
|
assert.equal(result, expectedResult, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testTimeAfterRelative = function (key, value, range, expectedResult, ticket) {
|
var testTimeAfterRelative = function (assert, key, value, range, expectedResult, ticket) {
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
[key]: {
|
[key]: {
|
||||||
|
@ -648,10 +648,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, expectedResult, result);
|
assert.equal(result, expectedResult, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testTimeWithinNextRelative = function (key, value, range, expectedResult, ticket) {
|
var testTimeWithinNextRelative = function (assert, key, value, range, expectedResult, ticket) {
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
[key]: {
|
[key]: {
|
||||||
|
@ -662,10 +662,10 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, expectedResult, result);
|
assert.equal(result, expectedResult, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
var testTimeWithinLastRelative = function (key, value, range, expectedResult, ticket) {
|
var testTimeWithinLastRelative = function (assert, key, value, range, expectedResult, ticket) {
|
||||||
setting = {
|
setting = {
|
||||||
"condition": {
|
"condition": {
|
||||||
[key]: {
|
[key]: {
|
||||||
|
@ -676,7 +676,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result = App.Ticket.selector(ticket, setting['condition']);
|
result = App.Ticket.selector(ticket, setting['condition']);
|
||||||
equal(result, expectedResult, result);
|
assert.equal(result, expectedResult, result);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -685,64 +685,64 @@ window.onload = function() {
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
test("ticket number", function() {
|
QUnit.test("ticket number", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('ticket.number', '72', ticket);
|
testContains(assert, 'ticket.number', '72', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket title", function() {
|
QUnit.test("ticket title", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('ticket.title', 'asd', ticket);
|
testContains(assert, 'ticket.title', 'asd', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket customer_id", function() {
|
QUnit.test("ticket customer_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
App.Session.set(6);
|
App.Session.set(6);
|
||||||
|
|
||||||
testPreConditionUser('ticket.customer_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'ticket.customer_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket organization_id", function() {
|
QUnit.test("ticket organization_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionUser('ticket.organization_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'ticket.organization_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket group_id", function() {
|
QUnit.test("ticket group_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('ticket.group_id', ['1'], ticket, sessionData);
|
testIs(assert, 'ticket.group_id', ['1'], ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket owner_id", function() {
|
QUnit.test("ticket owner_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
App.Session.set(6);
|
App.Session.set(6);
|
||||||
|
|
||||||
testPreConditionUser('ticket.owner_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'ticket.owner_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket state_id", function() {
|
QUnit.test("ticket state_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('ticket.state_id', ['4'], ticket, sessionData);
|
testIs(assert, 'ticket.state_id', ['4'], ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket pending_time", function() {
|
QUnit.test("ticket pending_time", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.pending_time', ticket.pending_time, ticket);
|
testTime(assert, 'ticket.pending_time', ticket.pending_time, ticket);
|
||||||
|
|
||||||
// -------------------------
|
// -------------------------
|
||||||
// BEFORE TIME
|
// BEFORE TIME
|
||||||
|
@ -750,30 +750,30 @@ window.onload = function() {
|
||||||
|
|
||||||
// hour
|
// hour
|
||||||
ticket.pending_time = new Date().toISOString();
|
ticket.pending_time = new Date().toISOString();
|
||||||
testTimeBeforeRelative('ticket.pending_time', 1, 'hour', false, ticket);
|
testTimeBeforeRelative(assert, 'ticket.pending_time', 1, 'hour', false, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() - 60 * 60 * 2 * 1000);
|
compareDate.setTime( compareDate.getTime() - 60 * 60 * 2 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeBeforeRelative('ticket.pending_time', 1, 'hour', true, ticket);
|
testTimeBeforeRelative(assert, 'ticket.pending_time', 1, 'hour', true, ticket);
|
||||||
|
|
||||||
// day
|
// day
|
||||||
ticket.pending_time = new Date().toISOString();
|
ticket.pending_time = new Date().toISOString();
|
||||||
testTimeBeforeRelative('ticket.pending_time', 1, 'day', false, ticket);
|
testTimeBeforeRelative(assert, 'ticket.pending_time', 1, 'day', false, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() - 60 * 60 * 48 * 1000);
|
compareDate.setTime( compareDate.getTime() - 60 * 60 * 48 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeBeforeRelative('ticket.pending_time', 1, 'day', true, ticket);
|
testTimeBeforeRelative(assert, 'ticket.pending_time', 1, 'day', true, ticket);
|
||||||
|
|
||||||
// year
|
// year
|
||||||
ticket.pending_time = new Date().toISOString();
|
ticket.pending_time = new Date().toISOString();
|
||||||
testTimeBeforeRelative('ticket.pending_time', 1, 'year', false, ticket);
|
testTimeBeforeRelative(assert, 'ticket.pending_time', 1, 'year', false, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() - 60 * 60 * 365 * 2 * 1000);
|
compareDate.setTime( compareDate.getTime() - 60 * 60 * 365 * 2 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeBeforeRelative('ticket.pending_time', 1, 'year', true, ticket);
|
testTimeBeforeRelative(assert, 'ticket.pending_time', 1, 'year', true, ticket);
|
||||||
|
|
||||||
// -------------------------
|
// -------------------------
|
||||||
// AFTER TIME
|
// AFTER TIME
|
||||||
|
@ -781,30 +781,30 @@ window.onload = function() {
|
||||||
|
|
||||||
// hour
|
// hour
|
||||||
ticket.pending_time = new Date().toISOString();
|
ticket.pending_time = new Date().toISOString();
|
||||||
testTimeAfterRelative('ticket.pending_time', 1, 'hour', false, ticket);
|
testTimeAfterRelative(assert, 'ticket.pending_time', 1, 'hour', false, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() + 60 * 60 * 2 * 1000);
|
compareDate.setTime( compareDate.getTime() + 60 * 60 * 2 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeAfterRelative('ticket.pending_time', 1, 'hour', true, ticket);
|
testTimeAfterRelative(assert, 'ticket.pending_time', 1, 'hour', true, ticket);
|
||||||
|
|
||||||
// day
|
// day
|
||||||
ticket.pending_time = new Date().toISOString();
|
ticket.pending_time = new Date().toISOString();
|
||||||
testTimeAfterRelative('ticket.pending_time', 1, 'day', false, ticket);
|
testTimeAfterRelative(assert, 'ticket.pending_time', 1, 'day', false, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() + 60 * 60 * 48 * 1000);
|
compareDate.setTime( compareDate.getTime() + 60 * 60 * 48 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeAfterRelative('ticket.pending_time', 1, 'day', true, ticket);
|
testTimeAfterRelative(assert, 'ticket.pending_time', 1, 'day', true, ticket);
|
||||||
|
|
||||||
// year
|
// year
|
||||||
ticket.pending_time = new Date().toISOString();
|
ticket.pending_time = new Date().toISOString();
|
||||||
testTimeAfterRelative('ticket.pending_time', 1, 'year', false, ticket);
|
testTimeAfterRelative(assert, 'ticket.pending_time', 1, 'year', false, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() + 60 * 60 * 365 * 2 * 1000);
|
compareDate.setTime( compareDate.getTime() + 60 * 60 * 365 * 2 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeAfterRelative('ticket.pending_time', 1, 'year', true, ticket);
|
testTimeAfterRelative(assert, 'ticket.pending_time', 1, 'year', true, ticket);
|
||||||
|
|
||||||
|
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
@ -815,12 +815,12 @@ window.onload = function() {
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() - 60 * 60 * 0.5 * 1000);
|
compareDate.setTime( compareDate.getTime() - 60 * 60 * 0.5 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeWithinLastRelative('ticket.pending_time', 1, 'hour', true, ticket);
|
testTimeWithinLastRelative(assert, 'ticket.pending_time', 1, 'hour', true, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() - 60 * 60 * 2 * 1000);
|
compareDate.setTime( compareDate.getTime() - 60 * 60 * 2 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeWithinLastRelative('ticket.pending_time', 1, 'hour', false, ticket);
|
testTimeWithinLastRelative(assert, 'ticket.pending_time', 1, 'hour', false, ticket);
|
||||||
|
|
||||||
// -------------------------
|
// -------------------------
|
||||||
// WITHIN NEXT TIME
|
// WITHIN NEXT TIME
|
||||||
|
@ -830,289 +830,289 @@ window.onload = function() {
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() + 60 * 60 * 0.5 * 1000);
|
compareDate.setTime( compareDate.getTime() + 60 * 60 * 0.5 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeWithinNextRelative('ticket.pending_time', 1, 'hour', true, ticket);
|
testTimeWithinNextRelative(assert, 'ticket.pending_time', 1, 'hour', true, ticket);
|
||||||
|
|
||||||
compareDate = new Date();
|
compareDate = new Date();
|
||||||
compareDate.setTime( compareDate.getTime() + 60 * 60 * 2 * 1000);
|
compareDate.setTime( compareDate.getTime() + 60 * 60 * 2 * 1000);
|
||||||
ticket.pending_time = compareDate.toISOString();
|
ticket.pending_time = compareDate.toISOString();
|
||||||
testTimeWithinNextRelative('ticket.pending_time', 1, 'hour', false, ticket);
|
testTimeWithinNextRelative(assert, 'ticket.pending_time', 1, 'hour', false, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket priority_id", function() {
|
QUnit.test("ticket priority_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('ticket.priority_id', ['2'], ticket, sessionData);
|
testIs(assert, 'ticket.priority_id', ['2'], ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket escalation_at", function() {
|
QUnit.test("ticket escalation_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.escalation_at', ticket.escalation_at, ticket);
|
testTime(assert, 'ticket.escalation_at', ticket.escalation_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket last_contact_agent_at", function() {
|
QUnit.test("ticket last_contact_agent_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.last_contact_agent_at', ticket.last_contact_agent_at, ticket);
|
testTime(assert, 'ticket.last_contact_agent_at', ticket.last_contact_agent_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket last_contact_at", function() {
|
QUnit.test("ticket last_contact_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.last_contact_at', ticket.last_contact_at, ticket);
|
testTime(assert, 'ticket.last_contact_at', ticket.last_contact_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket last_contact_customer_at", function() {
|
QUnit.test("ticket last_contact_customer_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.last_contact_customer_at', ticket.last_contact_customer_at, ticket);
|
testTime(assert, 'ticket.last_contact_customer_at', ticket.last_contact_customer_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket first_response_at", function() {
|
QUnit.test("ticket first_response_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.first_response_at', ticket.first_response_at, ticket);
|
testTime(assert, 'ticket.first_response_at', ticket.first_response_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket close_at", function() {
|
QUnit.test("ticket close_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.close_at', ticket.close_at, ticket);
|
testTime(assert, 'ticket.close_at', ticket.close_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket created_by_id", function() {
|
QUnit.test("ticket created_by_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
App.Session.set(6);
|
App.Session.set(6);
|
||||||
|
|
||||||
testPreConditionUser('ticket.created_by_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'ticket.created_by_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket created_at", function() {
|
QUnit.test("ticket created_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.created_at', ticket.created_at, ticket);
|
testTime(assert, 'ticket.created_at', ticket.created_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket updated_at", function() {
|
QUnit.test("ticket updated_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('ticket.updated_at', ticket.updated_at, ticket);
|
testTime(assert, 'ticket.updated_at', ticket.updated_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket updated_by_id", function() {
|
QUnit.test("ticket updated_by_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
App.Session.set(6);
|
App.Session.set(6);
|
||||||
|
|
||||||
testPreConditionUser('ticket.updated_by_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'ticket.updated_by_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket tags", function() {
|
QUnit.test("ticket tags", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionTags('ticket.tags', ticket);
|
testPreConditionTags(assert, 'ticket.tags', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article from", function() {
|
QUnit.test("article from", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('article.from', 'Admin', ticket);
|
testContains(assert, 'article.from', 'Admin', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article to", function() {
|
QUnit.test("article to", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('article.to', 'agent1', ticket);
|
testContains(assert, 'article.to', 'agent1', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article cc", function() {
|
QUnit.test("article cc", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('article.cc', 'agent1+cc', ticket);
|
testContains(assert, 'article.cc', 'agent1+cc', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article subject", function() {
|
QUnit.test("article subject", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('article.subject', 'asdf', ticket);
|
testContains(assert, 'article.subject', 'asdf', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article type_id", function() {
|
QUnit.test("article type_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('article.type_id', ['1'], ticket);
|
testIs(assert, 'article.type_id', ['1'], ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article sender_id", function() {
|
QUnit.test("article sender_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('article.sender_id', ['1'], ticket);
|
testIs(assert, 'article.sender_id', ['1'], ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article internal", function() {
|
QUnit.test("article internal", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('article.internal', ['false'], ticket);
|
testIs(assert, 'article.internal', ['false'], ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("article created_by_id", function() {
|
QUnit.test("article created_by_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionUser('article.created_by_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'article.created_by_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer login", function() {
|
QUnit.test("customer login", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('customer.login', 'hc', ticket);
|
testContains(assert, 'customer.login', 'hc', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer firstname", function() {
|
QUnit.test("customer firstname", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('customer.firstname', 'Harald', ticket);
|
testContains(assert, 'customer.firstname', 'Harald', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer lastname", function() {
|
QUnit.test("customer lastname", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('customer.lastname', 'Customer', ticket);
|
testContains(assert, 'customer.lastname', 'Customer', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer email", function() {
|
QUnit.test("customer email", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('customer.email', 'hc', ticket);
|
testContains(assert, 'customer.email', 'hc', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer organization_id", function() {
|
QUnit.test("customer organization_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionOrganization('customer.organization_id', '6', ticket, sessionData);
|
testPreConditionOrganization(assert, 'customer.organization_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer created_by_id", function() {
|
QUnit.test("customer created_by_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionUser('customer.created_by_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'customer.created_by_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer created_at", function() {
|
QUnit.test("customer created_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('customer.created_at', ticket.customer.created_at, ticket);
|
testTime(assert, 'customer.created_at', ticket.customer.created_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer updated_by_id", function() {
|
QUnit.test("customer updated_by_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionUser('customer.updated_by_id', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'customer.updated_by_id', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer missing_field", function() {
|
QUnit.test("customer missing_field", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('customer.missing_field', '', ticket);
|
testContains(assert, 'customer.missing_field', '', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("customer web", function() {
|
QUnit.test("customer web", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('customer.web', 'cool', ticket);
|
testContains(assert, 'customer.web', 'cool', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization name", function() {
|
QUnit.test("organization name", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('organization.name', 'gmbh', ticket);
|
testContains(assert, 'organization.name', 'gmbh', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization shared", function() {
|
QUnit.test("organization shared", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('organization.shared', true, ticket);
|
testIs(assert, 'organization.shared', true, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization created_by_id", function() {
|
QUnit.test("organization created_by_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionUser('organization.created_by_id', 6, ticket);
|
testPreConditionUser(assert, 'organization.created_by_id', 6, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization updated_by_id", function() {
|
QUnit.test("organization updated_by_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionUser('organization.updated_by_id', 6, ticket);
|
testPreConditionUser(assert, 'organization.updated_by_id', 6, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization created_at", function() {
|
QUnit.test("organization created_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('organization.created_at', ticket.organization.created_at, ticket);
|
testTime(assert, 'organization.created_at', ticket.organization.created_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization updated_at", function() {
|
QUnit.test("organization updated_at", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testTime('organization.updated_at', ticket.organization.updated_at, ticket);
|
testTime(assert, 'organization.updated_at', ticket.organization.updated_at, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization domain_assignment", function() {
|
QUnit.test("organization domain_assignment", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testIs('organization.domain_assignment', false, ticket);
|
testIs(assert, 'organization.domain_assignment', false, ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("organization domain", function() {
|
QUnit.test("organization domain", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testContains('organization.domain', 'cool', ticket);
|
testContains(assert, 'organization.domain', 'cool', ticket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ticket mention user_id", function() {
|
QUnit.test("ticket mention user_id", assert => {
|
||||||
ticket = new App.Ticket();
|
ticket = new App.Ticket();
|
||||||
ticket.load(ticketData);
|
ticket.load(ticketData);
|
||||||
|
|
||||||
testPreConditionUser('ticket.mention_user_ids', '6', ticket, sessionData);
|
testPreConditionUser(assert, 'ticket.mention_user_ids', '6', ticket, sessionData);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
// date picker timezone conversion for display
|
// date picker timezone conversion for display
|
||||||
test("date picker", function() {
|
QUnit.test("date picker", assert => {
|
||||||
Date.prototype.getTimezoneOffset2 = Date.prototype.getTimezoneOffset
|
Date.prototype.getTimezoneOffset2 = Date.prototype.getTimezoneOffset
|
||||||
Date.prototype.getTimezoneOffset = function() { return -360 }
|
Date.prototype.getTimezoneOffset = function() { return -360 }
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ test("date picker", function() {
|
||||||
|
|
||||||
date_time_parsed = new Date(Date.parse(obj_date_time.value))
|
date_time_parsed = new Date(Date.parse(obj_date_time.value))
|
||||||
date_time_input = el_date_time.find('.js-datepicker').datepicker('getDate')
|
date_time_input = el_date_time.find('.js-datepicker').datepicker('getDate')
|
||||||
equal(date_time_parsed.getDate(), date_time_input.getDate(), 'datetime matching day')
|
assert.equal(date_time_parsed.getDate(), date_time_input.getDate(), 'datetime matching day')
|
||||||
|
|
||||||
obj_date = {
|
obj_date = {
|
||||||
name: 'test',
|
name: 'test',
|
||||||
|
@ -23,14 +23,14 @@ test("date picker", function() {
|
||||||
|
|
||||||
date_parsed = new Date(Date.parse(obj_date.value))
|
date_parsed = new Date(Date.parse(obj_date.value))
|
||||||
date_input = el_date.find('.js-datepicker').datepicker('getUTCDate')
|
date_input = el_date.find('.js-datepicker').datepicker('getUTCDate')
|
||||||
equal(date_parsed.getDate(), date_input.getDate(), 'date matching day')
|
assert.equal(date_parsed.getDate(), date_input.getDate(), 'date matching day')
|
||||||
|
|
||||||
Date.prototype.getTimezoneOffset = Date.prototype.getTimezoneOffset2
|
Date.prototype.getTimezoneOffset = Date.prototype.getTimezoneOffset2
|
||||||
Date.prototype.getTimezoneOffset2 = undefined
|
Date.prototype.getTimezoneOffset2 = undefined
|
||||||
})
|
})
|
||||||
|
|
||||||
// pretty date
|
// pretty date
|
||||||
test("check pretty date", function() {
|
QUnit.test("check pretty date", assert => {
|
||||||
var current = new Date()
|
var current = new Date()
|
||||||
// use date formatting as functions to make it more flexible
|
// use date formatting as functions to make it more flexible
|
||||||
prettyDateRelative(current, '', true, 'relative');
|
prettyDateRelative(current, '', true, 'relative');
|
||||||
|
@ -41,43 +41,43 @@ test("check pretty date", function() {
|
||||||
|
|
||||||
function prettyDateRelative(current, escalation, long, type) {
|
function prettyDateRelative(current, escalation, long, type) {
|
||||||
var result = App.PrettyDate.humanTime(current, escalation, long, type);
|
var result = App.PrettyDate.humanTime(current, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now')
|
assert.equal(result, 'just now', 'just now')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - 15000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current - 15000, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now')
|
assert.equal(result, 'just now', 'just now')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - 60000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current - 60000, escalation, long, type);
|
||||||
equal(result, '1 minute ago', '1 min ago')
|
assert.equal(result, '1 minute ago', '1 min ago')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (2 * 60000), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (2 * 60000), escalation, long, type);
|
||||||
equal(result, '2 minutes ago', '2 min ago')
|
assert.equal(result, '2 minutes ago', '2 min ago')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60), escalation, long, type);
|
||||||
equal(result, '1 hour ago', '1 hour')
|
assert.equal(result, '1 hour ago', '1 hour')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2), escalation, long, type);
|
||||||
equal(result, '2 hours ago', '2 hours')
|
assert.equal(result, '2 hours ago', '2 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2.5), escalation, long, type);
|
||||||
equal(result, '2 hours 30 minutes ago', '2.5 hours')
|
assert.equal(result, '2 hours 30 minutes ago', '2.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 12.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 12.5), escalation, long, type);
|
||||||
equal(result, '12 hours ago', '12.5 hours')
|
assert.equal(result, '12 hours ago', '12.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24), escalation, long, type);
|
||||||
equal(result, '1 day ago', '1 day')
|
assert.equal(result, '1 day ago', '1 day')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2), escalation, long, type);
|
||||||
equal(result, '2 days ago', '2 days')
|
assert.equal(result, '2 days ago', '2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2) - (60000 * 5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2) - (60000 * 5), escalation, long, type);
|
||||||
equal(result, '2 days ago', '2 days')
|
assert.equal(result, '2 days ago', '2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5), escalation, long, type);
|
||||||
equal(result, '2 days 12 hours ago', '2.5 days')
|
assert.equal(result, '2 days 12 hours ago', '2.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5) - (60000 * 5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5) - (60000 * 5), escalation, long, type);
|
||||||
equal(result, '2 days 12 hours ago', '2.5 days')
|
assert.equal(result, '2 days 12 hours ago', '2.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 10.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 10.5), escalation, long, type);
|
||||||
var pastDate = new Date(current - (60000 * 60 * 24 * 10.5))
|
var pastDate = new Date(current - (60000 * 60 * 24 * 10.5))
|
||||||
|
@ -91,7 +91,7 @@ test("check pretty date", function() {
|
||||||
}
|
}
|
||||||
var yyyy = pastDate.getFullYear();
|
var yyyy = pastDate.getFullYear();
|
||||||
// mm/dd/yyyy
|
// mm/dd/yyyy
|
||||||
equal(result, mm+'/'+dd+'/'+yyyy, '10.5 days')
|
assert.equal(result, mm+'/'+dd+'/'+yyyy, '10.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 30), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 30), escalation, long, type);
|
||||||
var pastDate = new Date(current - (60000 * 60 * 24 * 30))
|
var pastDate = new Date(current - (60000 * 60 * 24 * 30))
|
||||||
|
@ -105,228 +105,228 @@ test("check pretty date", function() {
|
||||||
}
|
}
|
||||||
var yyyy = pastDate.getFullYear();
|
var yyyy = pastDate.getFullYear();
|
||||||
// mm/dd/yyyy
|
// mm/dd/yyyy
|
||||||
equal(result, mm+'/'+dd+'/'+yyyy, '30 days')
|
assert.equal(result, mm+'/'+dd+'/'+yyyy, '30 days')
|
||||||
|
|
||||||
// future
|
// future
|
||||||
current = new Date()
|
current = new Date()
|
||||||
result = App.PrettyDate.humanTime(current, escalation, long, type);
|
result = App.PrettyDate.humanTime(current, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now')
|
assert.equal(result, 'just now', 'just now')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + 55000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + 55000, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now')
|
assert.equal(result, 'just now', 'just now')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + 65000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + 65000, escalation, long, type);
|
||||||
equal(result, 'in 1 minute', 'in 1 min')
|
assert.equal(result, 'in 1 minute', 'in 1 min')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (2 * 65000), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (2 * 65000), escalation, long, type);
|
||||||
equal(result, 'in 2 minutes', 'in 2 min')
|
assert.equal(result, 'in 2 minutes', 'in 2 min')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60500 * 60), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60500 * 60), escalation, long, type);
|
||||||
equal(result, 'in 1 hour', 'in 1 hour')
|
assert.equal(result, 'in 1 hour', 'in 1 hour')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2), escalation, long, type);
|
||||||
equal(result, 'in 2 hours', 'in 2 hours')
|
assert.equal(result, 'in 2 hours', 'in 2 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2.5), escalation, long, type);
|
||||||
equal(result, 'in 2 hours 30 minutes', 'in 2.5 hours')
|
assert.equal(result, 'in 2 hours 30 minutes', 'in 2.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24), escalation, long, type) ;
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24), escalation, long, type) ;
|
||||||
equal(result, 'in 1 day', 'in 1 day')
|
assert.equal(result, 'in 1 day', 'in 1 day')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2), escalation, long, type);
|
||||||
equal(result, 'in 2 days', 'in 2 days')
|
assert.equal(result, 'in 2 days', 'in 2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2.5), escalation, long, type);
|
||||||
equal(result, 'in 2 days 12 hours', 'in 2.5 days')
|
assert.equal(result, 'in 2 days 12 hours', 'in 2.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 5.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 5.5), escalation, long, type);
|
||||||
equal(result, 'in 5 days 12 hours', 'in 30.5 days')
|
assert.equal(result, 'in 5 days 12 hours', 'in 30.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 30.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 30.5), escalation, long, type);
|
||||||
equal(result, 'in 30 days', 'in 30.5 days')
|
assert.equal(result, 'in 30 days', 'in 30.5 days')
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function prettyDateAbsolute(current, escalation, long, type) {
|
function prettyDateAbsolute(current, escalation, long, type) {
|
||||||
|
|
||||||
var result = App.PrettyDate.humanTime(current, escalation, long, type);
|
var result = App.PrettyDate.humanTime(current, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // by defaul < 1 min is just now
|
assert.equal(result, 'just now', 'just now') // by defaul < 1 min is just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - 15000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current - 15000, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // by default < 1 min is just now
|
assert.equal(result, 'just now', 'just now') // by default < 1 min is just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - 60000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current - 60000, escalation, long, type);
|
||||||
diff = 60
|
diff = 60
|
||||||
equal(result, getAbsolute(new Date(current - 60000), diff), '1 min ago')
|
assert.equal(result, getAbsolute(new Date(current - 60000), diff), '1 min ago')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (2 * 60000), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (2 * 60000), escalation, long, type);
|
||||||
diff = 2 * 60
|
diff = 2 * 60
|
||||||
equal(result, getAbsolute(new Date(current - (2 * 60000)), diff), '2 min ago')
|
assert.equal(result, getAbsolute(new Date(current - (2 * 60000)), diff), '2 min ago')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60), escalation, long, type);
|
||||||
diff = 60 * 60
|
diff = 60 * 60
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60)), diff), '1 hour')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60)), diff), '1 hour')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2), escalation, long, type);
|
||||||
diff = 60 * 60 * 2
|
diff = 60 * 60 * 2
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 2)), diff), '2 hours')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 2)), diff), '2 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2.5), escalation, long, type);
|
||||||
diff = 60 * 60 * 2.5
|
diff = 60 * 60 * 2.5
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 2.5)), diff), '2.5 hours')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 2.5)), diff), '2.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 12.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 12.5), escalation, long, type);
|
||||||
diff = 60 * 60 * 12.5
|
diff = 60 * 60 * 12.5
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 12.5)), diff), '12.5 hours')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 12.5)), diff), '12.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24), escalation, long, type);
|
||||||
diff = 60 * 60 * 25
|
diff = 60 * 60 * 25
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 24)), diff), '1 day')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 24)), diff), '1 day')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2), escalation, long, type);
|
||||||
diff = 60 * 60 * 25 * 2
|
diff = 60 * 60 * 25 * 2
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2)), diff), '2 days')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2)), diff), '2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2) - (60000 * 5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2) - (60000 * 5), escalation, long, type);
|
||||||
diff = (60 * 60 * 24 * 2) - (60 * 5)
|
diff = (60 * 60 * 24 * 2) - (60 * 5)
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2) - (60000 * 5)), diff), '2 days')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2) - (60000 * 5)), diff), '2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5), escalation, long, type);
|
||||||
diff = (60 * 60 * 24 * 2.5)
|
diff = (60 * 60 * 24 * 2.5)
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2.5)), diff), '2.5 days')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2.5)), diff), '2.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5) - (60000 * 5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5) - (60000 * 5), escalation, long, type);
|
||||||
diff = (60 * 60 * 24 * 2.5) - (60 * 5)
|
diff = (60 * 60 * 24 * 2.5) - (60 * 5)
|
||||||
equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2.5) - (60000 * 5)), diff), '2.5 days')
|
assert.equal(result, getAbsolute(new Date(current - (60000 * 60 * 24 * 2.5) - (60000 * 5)), diff), '2.5 days')
|
||||||
|
|
||||||
// future
|
// future
|
||||||
current = new Date()
|
current = new Date()
|
||||||
result = App.PrettyDate.humanTime(current, escalation, long, type);
|
result = App.PrettyDate.humanTime(current, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
assert.equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + 55000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + 55000, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
assert.equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + 65000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + 65000, escalation, long, type);
|
||||||
diff = 60
|
diff = 60
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + 65000), diff), 'in 1 min')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + 65000), diff), 'in 1 min')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (2 * 65000), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (2 * 65000), escalation, long, type);
|
||||||
diff = 2 * 60
|
diff = 2 * 60
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (2 * 65000)), diff), 'in 2 min')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (2 * 65000)), diff), 'in 2 min')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60500 * 60), escalation, long, type) ;
|
result = App.PrettyDate.humanTime(current.getTime() + (60500 * 60), escalation, long, type) ;
|
||||||
diff = 60 * 60
|
diff = 60 * 60
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (60500 * 60)), diff), 'in 1 hour')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (60500 * 60)), diff), 'in 1 hour')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2), escalation, long, type);
|
||||||
diff = 60 * 60 * 2
|
diff = 60 * 60 * 2
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 2)), diff), 'in 2 hours')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 2)), diff), 'in 2 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2.5), escalation, long, type);
|
||||||
diff = 60 * 60 * 2.5
|
diff = 60 * 60 * 2.5
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 2.5)), diff), 'in 2.5 hours')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 2.5)), diff), 'in 2.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24), escalation, long, type);
|
||||||
diff = 60 * 60 * 24
|
diff = 60 * 60 * 24
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24)), diff), 'in 1 day')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24)), diff), 'in 1 day')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2), escalation, long, type);
|
||||||
diff = 60 * 60 * 24 * 2
|
diff = 60 * 60 * 24 * 2
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24 * 2)), diff), 'in 2 days')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24 * 2)), diff), 'in 2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2.5), escalation, long, type);
|
||||||
diff = 60 * 60 * 24 * 2.5
|
diff = 60 * 60 * 24 * 2.5
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24 * 2.5)), diff), 'in 2.5 days')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24 * 2.5)), diff), 'in 2.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 5.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 5.5), escalation, long, type);
|
||||||
diff = 60 * 60 * 24 * 5.5
|
diff = 60 * 60 * 24 * 5.5
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24 * 5.5)), diff), 'in 5.5 days')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + (60050 * 60 * 24 * 5.5)), diff), 'in 5.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 30.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 30.5), escalation, long, type);
|
||||||
diff = (60 * 60 * 24 * 30.5);
|
diff = (60 * 60 * 24 * 30.5);
|
||||||
equal(result, getAbsolute(new Date(current.getTime() + 60050 * 60 * 24 * 30.5), diff), 'in 30.5 days')
|
assert.equal(result, getAbsolute(new Date(current.getTime() + 60050 * 60 * 24 * 30.5), diff), 'in 30.5 days')
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function prettyDateTimestamp(current, escalation, long, type) {
|
function prettyDateTimestamp(current, escalation, long, type) {
|
||||||
|
|
||||||
var result = App.PrettyDate.humanTime(current, escalation, long, type);
|
var result = App.PrettyDate.humanTime(current, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // by defaul < 1 min is just now
|
assert.equal(result, 'just now', 'just now') // by defaul < 1 min is just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - 15000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current - 15000, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // by default < 1 min is just now
|
assert.equal(result, 'just now', 'just now') // by default < 1 min is just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - 60000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current - 60000, escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - 60000)), '1 min ago')
|
assert.equal(result, getTimestamp(new Date(current - 60000)), '1 min ago')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (2 * 60000), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (2 * 60000), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (2 * 60000))), '2 min ago')
|
assert.equal(result, getTimestamp(new Date(current - (2 * 60000))), '2 min ago')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60))), '1 hour')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60))), '1 hour')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 2))), '2 hours')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 2))), '2 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 2.5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 2.5))), '2.5 hours')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 2.5))), '2.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 12.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 12.5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 12.5))), '12.5 hours')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 12.5))), '12.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 24))), '1 day')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 24))), '1 day')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2))), '2 days')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2))), '2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2) - (60000 * 5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2) - (60000 * 5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2) - (60000 * 5))), '2 days')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2) - (60000 * 5))), '2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2.5))), '2.5 days')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2.5))), '2.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5) - (60000 * 5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current - (60000 * 60 * 24 * 2.5) - (60000 * 5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2.5) - (60000 * 5))), '2.5 days')
|
assert.equal(result, getTimestamp(new Date(current - (60000 * 60 * 24 * 2.5) - (60000 * 5))), '2.5 days')
|
||||||
|
|
||||||
// future
|
// future
|
||||||
current = new Date()
|
current = new Date()
|
||||||
result = App.PrettyDate.humanTime(current, escalation, long, type);
|
result = App.PrettyDate.humanTime(current, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
assert.equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + 55000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + 55000, escalation, long, type);
|
||||||
equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
assert.equal(result, 'just now', 'just now') // no change, because < 1 min = just now
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + 65000, escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + 65000, escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + 65000)), 'in 1 min')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + 65000)), 'in 1 min')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (2 * 65000), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (2 * 65000), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (2 * 65000))), 'in 2 min')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (2 * 65000))), 'in 2 min')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60500 * 60), escalation, long, type) ;
|
result = App.PrettyDate.humanTime(current.getTime() + (60500 * 60), escalation, long, type) ;
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (60500 * 60))), 'in 1 hour')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (60500 * 60))), 'in 1 hour')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 2))), 'in 2 hours')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 2))), 'in 2 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 2.5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 2.5))), 'in 2.5 hours')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 2.5))), 'in 2.5 hours')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24))), 'in 1 day')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24))), 'in 1 day')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24 * 2))), 'in 2 days')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24 * 2))), 'in 2 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 2.5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24 * 2.5))), 'in 2.5 days')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24 * 2.5))), 'in 2.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 5.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 5.5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24 * 5.5))), 'in 5.5 days')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + (60050 * 60 * 24 * 5.5))), 'in 5.5 days')
|
||||||
|
|
||||||
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 30.5), escalation, long, type);
|
result = App.PrettyDate.humanTime(current.getTime() + (60050 * 60 * 24 * 30.5), escalation, long, type);
|
||||||
equal(result, getTimestamp(new Date(current.getTime() + 60050 * 60 * 24 * 30.5)), 'in 30.5 days')
|
assert.equal(result, getTimestamp(new Date(current.getTime() + 60050 * 60 * 24 * 30.5)), 'in 30.5 days')
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -369,9 +369,9 @@ test("check pretty date", function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test("PrettyDate getISOWeeks", function() {
|
QUnit.test("PrettyDate getISOWeeks", assert => {
|
||||||
equal(App.PrettyDate.getISOWeeks(2026), 53, '53 weeks')
|
assert.equal(App.PrettyDate.getISOWeeks(2026), 53, '53 weeks')
|
||||||
equal(App.PrettyDate.getISOWeeks(2020), 53, 'leap year and 53 weeks')
|
assert.equal(App.PrettyDate.getISOWeeks(2020), 53, 'leap year and 53 weeks')
|
||||||
equal(App.PrettyDate.getISOWeeks(2019), 52, '52 weeks')
|
assert.equal(App.PrettyDate.getISOWeeks(2019), 52, '52 weeks')
|
||||||
equal(App.PrettyDate.getISOWeeks(2024), 52, 'leap year and 52 weeks')
|
assert.equal(App.PrettyDate.getISOWeeks(2024), 52, 'leap year and 52 weeks')
|
||||||
})
|
})
|
|
@ -1,82 +0,0 @@
|
||||||
window.onload = function() {
|
|
||||||
|
|
||||||
test('test current user behaviour by updating session user via assets', function() {
|
|
||||||
|
|
||||||
// Wenn App.User updated through asset and set as session user
|
|
||||||
// expect App.Session.get with new values
|
|
||||||
App.User.refresh([{
|
|
||||||
"login": "hh@example.com",
|
|
||||||
"firstname": "Harald",
|
|
||||||
"lastname": "Habebe",
|
|
||||||
"email": "hh@example.com",
|
|
||||||
"role_ids": [ 1, 2, 4 ],
|
|
||||||
"group_ids": [ 1 ],
|
|
||||||
"active": true,
|
|
||||||
"updated_at": "2017-02-09T09:17:04.770Z",
|
|
||||||
"address": "",
|
|
||||||
"vip": false,
|
|
||||||
"custom_key": undefined,
|
|
||||||
"asdf": "",
|
|
||||||
"id": 6
|
|
||||||
}]);
|
|
||||||
App.Session.set(6)
|
|
||||||
equal(App.Session.get('id'), 6)
|
|
||||||
equal(App.Session.get('login'), 'hh@example.com')
|
|
||||||
equal(App.Session.get('vip'), false)
|
|
||||||
equal(App.Session.get('custom_key'), undefined)
|
|
||||||
equal(App.Session.get().id, 6)
|
|
||||||
equal(App.Session.get().login, 'hh@example.com')
|
|
||||||
equal(App.Session.get().custom_key, undefined)
|
|
||||||
equal(App.Session.get().not_existing, undefined)
|
|
||||||
|
|
||||||
// Wenn App.User updated through asset
|
|
||||||
// expect App.Session.get with new values
|
|
||||||
App.User.refresh([{
|
|
||||||
"login": "hh_new@example.com",
|
|
||||||
"firstname": "Harald",
|
|
||||||
"lastname": "Habebe",
|
|
||||||
"email": "hh_new@example.com",
|
|
||||||
"role_ids": [ 1, 2, 4 ],
|
|
||||||
"group_ids": [ 1 ],
|
|
||||||
"active": true,
|
|
||||||
"updated_at": "2017-02-09T09:17:04.770Z",
|
|
||||||
"address": "",
|
|
||||||
"vip": false,
|
|
||||||
"custom_key": undefined,
|
|
||||||
"asdf": "",
|
|
||||||
"id": 6
|
|
||||||
}]);
|
|
||||||
equal(App.Session.get('id'), 6)
|
|
||||||
equal(App.Session.get('login'), 'hh_new@example.com')
|
|
||||||
equal(App.Session.get('vip'), false)
|
|
||||||
equal(App.Session.get('custom_key'), undefined)
|
|
||||||
equal(App.Session.get().id, 6)
|
|
||||||
equal(App.Session.get().login, 'hh_new@example.com')
|
|
||||||
equal(App.Session.get().custom_key, undefined)
|
|
||||||
equal(App.Session.get().not_existing, undefined)
|
|
||||||
|
|
||||||
// Wenn App.Session is reseted to inital
|
|
||||||
// expect undefined for all
|
|
||||||
App.Session.init()
|
|
||||||
equal(App.Session.get(), undefined)
|
|
||||||
equal(App.Session.get('id'), undefined)
|
|
||||||
equal(App.Session.get('login'), undefined)
|
|
||||||
equal(App.Session.get('vip'), undefined)
|
|
||||||
equal(App.Session.get('custom_key'), undefined)
|
|
||||||
|
|
||||||
// When App.Session is set and set to undefined or null,
|
|
||||||
// expect @current() to return null
|
|
||||||
App.Session.set(6)
|
|
||||||
App.Session.set(undefined)
|
|
||||||
equal(App.User.current(), null, 'with no active session')
|
|
||||||
App.Session.set(null)
|
|
||||||
equal(App.User.current(), null, 'with no active session')
|
|
||||||
|
|
||||||
// When App.Session is set with an invalid (not existing) user ID,
|
|
||||||
// expect @current() to return null
|
|
||||||
App.Session.set(100)
|
|
||||||
equal(App.User.current(), null, 'with invalid session user ID')
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,3 +1,35 @@
|
||||||
|
/*[process-shim]*/
|
||||||
|
(function(global, env) {
|
||||||
|
// jshint ignore:line
|
||||||
|
if (typeof process === "undefined") {
|
||||||
|
global.process = {
|
||||||
|
argv: [],
|
||||||
|
cwd: function() {
|
||||||
|
return "";
|
||||||
|
},
|
||||||
|
browser: true,
|
||||||
|
env: {
|
||||||
|
NODE_ENV: env || "development"
|
||||||
|
},
|
||||||
|
version: "",
|
||||||
|
platform:
|
||||||
|
global.navigator &&
|
||||||
|
global.navigator.userAgent &&
|
||||||
|
/Windows/.test(global.navigator.userAgent)
|
||||||
|
? "win"
|
||||||
|
: ""
|
||||||
|
};
|
||||||
|
}
|
||||||
|
})(
|
||||||
|
typeof self == "object" && self.Object == Object
|
||||||
|
? self
|
||||||
|
: typeof process === "object" &&
|
||||||
|
Object.prototype.toString.call(process) === "[object process]"
|
||||||
|
? global
|
||||||
|
: window,
|
||||||
|
"development"
|
||||||
|
);
|
||||||
|
|
||||||
/*[global-shim-start]*/
|
/*[global-shim-start]*/
|
||||||
(function(exports, global, doEval) {
|
(function(exports, global, doEval) {
|
||||||
// jshint ignore:line
|
// jshint ignore:line
|
||||||
|
@ -74,8 +106,9 @@
|
||||||
};
|
};
|
||||||
args[1] = module.exports;
|
args[1] = module.exports;
|
||||||
args[2] = module;
|
args[2] = module;
|
||||||
} else if (!args[0] && deps[0] === "exports") {
|
}
|
||||||
// Babel uses the exports and module object.
|
// Babel uses the exports and module object.
|
||||||
|
else if (!args[0] && deps[0] === "exports") {
|
||||||
module = { exports: {} };
|
module = { exports: {} };
|
||||||
args[0] = module.exports;
|
args[0] = module.exports;
|
||||||
if (deps[1] === "module") {
|
if (deps[1] === "module") {
|
||||||
|
@ -120,7 +153,12 @@
|
||||||
});
|
});
|
||||||
})(
|
})(
|
||||||
{},
|
{},
|
||||||
typeof self == "object" && self.Object == Object ? self : window,
|
typeof self == "object" && self.Object == Object
|
||||||
|
? self
|
||||||
|
: typeof process === "object" &&
|
||||||
|
Object.prototype.toString.call(process) === "[object process]"
|
||||||
|
? global
|
||||||
|
: window,
|
||||||
function(__$source__, __$global__) {
|
function(__$source__, __$global__) {
|
||||||
// jshint ignore:line
|
// jshint ignore:line
|
||||||
eval("(function() { " + __$source__ + " \n }).call(__$global__);");
|
eval("(function() { " + __$source__ + " \n }).call(__$global__);");
|
||||||
|
@ -613,6 +651,52 @@ define('syn/synthetic', function (require, exports, module) {
|
||||||
}
|
}
|
||||||
module.exports = syn;
|
module.exports = syn;
|
||||||
});
|
});
|
||||||
|
/*syn@0.14.1#keyboard-event-keys*/
|
||||||
|
define('syn/keyboard-event-keys', [
|
||||||
|
'require',
|
||||||
|
'exports',
|
||||||
|
'module',
|
||||||
|
'syn/synthetic'
|
||||||
|
], function (require, exports, module) {
|
||||||
|
var syn = require('syn/synthetic');
|
||||||
|
syn.key.keyboardEventKeys = {
|
||||||
|
'\b': 'Backspace',
|
||||||
|
'\t': 'Tab',
|
||||||
|
'\r': 'Enter',
|
||||||
|
'shift': 'Shift',
|
||||||
|
'ctrl': 'Control',
|
||||||
|
'alt': 'Alt',
|
||||||
|
'meta': 'Meta',
|
||||||
|
'pause-break': 'Pause',
|
||||||
|
'caps': 'CapsLock',
|
||||||
|
'escape': 'Escape',
|
||||||
|
'num-lock': 'NumLock',
|
||||||
|
'scroll-lock': 'ScrollLock',
|
||||||
|
'print': 'Print',
|
||||||
|
'page-up': 'PageUp',
|
||||||
|
'page-down': 'PageDown',
|
||||||
|
'end': 'End',
|
||||||
|
'home': 'Home',
|
||||||
|
'left': 'ArrowLeft',
|
||||||
|
'up': 'ArrowUp',
|
||||||
|
'right': 'ArrowRight',
|
||||||
|
'down': 'ArrowDown',
|
||||||
|
'insert': 'Insert',
|
||||||
|
'delete': 'Delete',
|
||||||
|
'f1': 'F1',
|
||||||
|
'f2': 'F2',
|
||||||
|
'f3': 'F3',
|
||||||
|
'f4': 'F4',
|
||||||
|
'f5': 'F5',
|
||||||
|
'f6': 'F6',
|
||||||
|
'f7': 'F7',
|
||||||
|
'f8': 'F8',
|
||||||
|
'f9': 'F9',
|
||||||
|
'f10': 'F10',
|
||||||
|
'f11': 'F11',
|
||||||
|
'f12': 'F12'
|
||||||
|
};
|
||||||
|
});
|
||||||
/*syn@0.14.1#mouse*/
|
/*syn@0.14.1#mouse*/
|
||||||
define('syn/mouse', [
|
define('syn/mouse', [
|
||||||
'require',
|
'require',
|
||||||
|
@ -702,6 +786,7 @@ define('syn/mouse', [
|
||||||
var doc = getWin(element).document || document, event;
|
var doc = getWin(element).document || document, event;
|
||||||
if (doc.createEvent) {
|
if (doc.createEvent) {
|
||||||
try {
|
try {
|
||||||
|
defaults.view = doc.defaultView;
|
||||||
event = doc.createEvent('MouseEvents');
|
event = doc.createEvent('MouseEvents');
|
||||||
event.initMouseEvent(type, defaults.bubbles, defaults.cancelable, defaults.view, defaults.detail, defaults.screenX, defaults.screenY, defaults.clientX, defaults.clientY, defaults.ctrlKey, defaults.altKey, defaults.shiftKey, defaults.metaKey, defaults.button, defaults.relatedTarget);
|
event.initMouseEvent(type, defaults.bubbles, defaults.cancelable, defaults.view, defaults.detail, defaults.screenX, defaults.screenY, defaults.clientX, defaults.clientY, defaults.ctrlKey, defaults.altKey, defaults.shiftKey, defaults.metaKey, defaults.button, defaults.relatedTarget);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -1918,7 +2003,7 @@ define('syn/key', [
|
||||||
if (!keyData[event]) {
|
if (!keyData[event]) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var charCode = keyData[event][0], keyCode = keyData[event][1], result = {};
|
var charCode = keyData[event][0], keyCode = keyData[event][1], result = { key: key };
|
||||||
if (keyCode === 'key') {
|
if (keyCode === 'key') {
|
||||||
result.keyCode = syn.keycodes[key];
|
result.keyCode = syn.keycodes[key];
|
||||||
} else if (keyCode === 'char') {
|
} else if (keyCode === 'char') {
|
||||||
|
@ -2220,7 +2305,15 @@ define('syn/key', [
|
||||||
},
|
},
|
||||||
event: function (type, options, element) {
|
event: function (type, options, element) {
|
||||||
var doc = h.getWindow(element).document || document, event;
|
var doc = h.getWindow(element).document || document, event;
|
||||||
if (doc.createEvent) {
|
if (typeof KeyboardEvent !== 'undefined') {
|
||||||
|
var keyboardEventKeys = syn.key.keyboardEventKeys;
|
||||||
|
if (options.key && keyboardEventKeys[options.key]) {
|
||||||
|
options.key = keyboardEventKeys[options.key];
|
||||||
|
}
|
||||||
|
event = new KeyboardEvent(type, options);
|
||||||
|
event.synthetic = true;
|
||||||
|
return event;
|
||||||
|
} else if (doc.createEvent) {
|
||||||
try {
|
try {
|
||||||
event = doc.createEvent('KeyEvents');
|
event = doc.createEvent('KeyEvents');
|
||||||
event.initKeyEvent(type, true, true, window, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.keyCode, options.charCode);
|
event.initKeyEvent(type, true, true, window, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.keyCode, options.charCode);
|
||||||
|
@ -2425,25 +2518,54 @@ define('syn/drag', [
|
||||||
DragonDrop.cleanup();
|
DragonDrop.cleanup();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
_dragStart: function (node, options) {
|
_dragStart: function (node) {
|
||||||
|
var options = {
|
||||||
|
bubbles: false,
|
||||||
|
cancelable: false
|
||||||
|
};
|
||||||
this.createAndDispatchEvent(node, 'dragstart', options);
|
this.createAndDispatchEvent(node, 'dragstart', options);
|
||||||
},
|
},
|
||||||
_drag: function (node, options) {
|
_drag: function (node) {
|
||||||
|
var options = {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true
|
||||||
|
};
|
||||||
this.createAndDispatchEvent(node, 'drag', options);
|
this.createAndDispatchEvent(node, 'drag', options);
|
||||||
},
|
},
|
||||||
_dragEnter: function (node, options) {
|
_dragEnter: function (node) {
|
||||||
|
var options = {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true
|
||||||
|
};
|
||||||
this.createAndDispatchEvent(node, 'dragenter', options);
|
this.createAndDispatchEvent(node, 'dragenter', options);
|
||||||
},
|
},
|
||||||
_dragOver: function (node, options) {
|
_dragOver: function (node) {
|
||||||
|
var options = {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true
|
||||||
|
};
|
||||||
this.createAndDispatchEvent(node, 'dragover', options);
|
this.createAndDispatchEvent(node, 'dragover', options);
|
||||||
},
|
},
|
||||||
_dragLeave: function (node, options) {
|
_dragLeave: function (node) {
|
||||||
|
var options = {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: false
|
||||||
|
};
|
||||||
this.createAndDispatchEvent(node, 'dragleave', options);
|
this.createAndDispatchEvent(node, 'dragleave', options);
|
||||||
},
|
},
|
||||||
_drop: function (node, options) {
|
_drop: function (node) {
|
||||||
|
var options = {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true,
|
||||||
|
buttons: 1
|
||||||
|
};
|
||||||
this.createAndDispatchEvent(node, 'drop', options);
|
this.createAndDispatchEvent(node, 'drop', options);
|
||||||
},
|
},
|
||||||
_dragEnd: function (node, options) {
|
_dragEnd: function (node) {
|
||||||
|
var options = {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: false
|
||||||
|
};
|
||||||
this.createAndDispatchEvent(node, 'dragend', options);
|
this.createAndDispatchEvent(node, 'dragend', options);
|
||||||
},
|
},
|
||||||
_mouseDown: function (node, options) {
|
_mouseDown: function (node, options) {
|
||||||
|
@ -2797,12 +2919,14 @@ define('syn', [
|
||||||
'exports',
|
'exports',
|
||||||
'module',
|
'module',
|
||||||
'syn/synthetic',
|
'syn/synthetic',
|
||||||
|
'syn/keyboard-event-keys',
|
||||||
'syn/mouse.support',
|
'syn/mouse.support',
|
||||||
'syn/browsers',
|
'syn/browsers',
|
||||||
'syn/key.support',
|
'syn/key.support',
|
||||||
'syn/drag'
|
'syn/drag'
|
||||||
], function (require, exports, module) {
|
], function (require, exports, module) {
|
||||||
var syn = require('syn/synthetic');
|
var syn = require('syn/synthetic');
|
||||||
|
require('syn/keyboard-event-keys');
|
||||||
require('syn/mouse.support');
|
require('syn/mouse.support');
|
||||||
require('syn/browsers');
|
require('syn/browsers');
|
||||||
require('syn/key.support');
|
require('syn/key.support');
|
||||||
|
@ -2815,4 +2939,4 @@ define('syn', [
|
||||||
global._define = global.define;
|
global._define = global.define;
|
||||||
global.define = global.define.orig;
|
global.define = global.define.orig;
|
||||||
}
|
}
|
||||||
)(typeof self == "object" && self.Object == Object ? self : window);
|
)(typeof self == "object" && self.Object == Object ? self : (typeof process === "object" && Object.prototype.toString.call(process) === "[object process]") ? global : window);
|
|
@ -1,844 +0,0 @@
|
||||||
// form
|
|
||||||
test('table test', function() {
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table simple I</h1><div id="table1"></div>')
|
|
||||||
var el = $('#table1')
|
|
||||||
App.TicketPriority.refresh( [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
name: '1 low',
|
|
||||||
note: 'some note 1',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
name: '2 normal',
|
|
||||||
note: 'some note 2',
|
|
||||||
active: false,
|
|
||||||
created_at: '2014-06-10T10:17:34.000Z',
|
|
||||||
},
|
|
||||||
] )
|
|
||||||
var rowClick = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('rowClick', id, e.target)
|
|
||||||
};
|
|
||||||
var rowDblClick = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('rowDblClick', id, e.target)
|
|
||||||
};
|
|
||||||
var rowMouseover = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('rowMouseover', id, e.target)
|
|
||||||
};
|
|
||||||
var rowMouseout = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('rowMouseout', id, e.target)
|
|
||||||
};
|
|
||||||
var colClick = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('colClick', id, e.target)
|
|
||||||
};
|
|
||||||
var colDblClick = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('colDblClick', id, e.target)
|
|
||||||
};
|
|
||||||
var colMouseover = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('colMouseover', id, e.target)
|
|
||||||
};
|
|
||||||
var colMouseout = function (id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('colMouseout', id, e.target)
|
|
||||||
};
|
|
||||||
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['name', 'created_at', 'active'],
|
|
||||||
model: App.TicketPriority,
|
|
||||||
objects: App.TicketPriority.search({sortBy:'name', order: 'ASC'}),
|
|
||||||
checkbox: false,
|
|
||||||
radio: false,
|
|
||||||
bindRow: {
|
|
||||||
events: {
|
|
||||||
'click': rowClick,
|
|
||||||
'mouseover': rowMouseover,
|
|
||||||
'mouseout': rowMouseout,
|
|
||||||
'dblclick': rowDblClick,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
bindCol: {
|
|
||||||
name: {
|
|
||||||
events: {
|
|
||||||
'click': colClick,
|
|
||||||
'mouseover': colMouseover,
|
|
||||||
'mouseout': colMouseout,
|
|
||||||
'dblclick': colDblClick,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created_at: {
|
|
||||||
events: {
|
|
||||||
'mouseover': colMouseover,
|
|
||||||
'mouseout': colMouseout,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Erstellt', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), '1 niedrig', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'true', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), '2 normal', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'false', 'check row 2')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table simple II</h1><div id="table2"></div>')
|
|
||||||
el = $('#table2')
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['name', 'created_at', 'active'],
|
|
||||||
model: App.TicketPriority,
|
|
||||||
objects: App.TicketPriority.search({sortBy:'name', order: 'DESC'}),
|
|
||||||
checkbox: false,
|
|
||||||
radio: false,
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Erstellt', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), '2 normal', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'false', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), '1 niedrig', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '10.06.2014', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'true', 'check row 2')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table simple III</h1><div id="table3"></div>')
|
|
||||||
el = $('#table3')
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
model: App.TicketPriority,
|
|
||||||
objects: App.TicketPriority.search({sortBy:'created_at', order: 'DESC'}),
|
|
||||||
checkbox: false,
|
|
||||||
radio: false,
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
|
||||||
notEqual( el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Erstellt', 'check header')
|
|
||||||
notEqual( el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 1, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), '2 normal', 'check row 2')
|
|
||||||
notEqual( el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '?', 'check row 2')
|
|
||||||
notEqual( el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'true', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 1, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), '1 niedrig', 'check row 1')
|
|
||||||
notEqual( el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '?', 'check row 1')
|
|
||||||
notEqual( el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'false', 'check row 1')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
App.Group.refresh( [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
name: 'group 1',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
name: 'group 2',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
App.User.refresh( [
|
|
||||||
{
|
|
||||||
id: 55,
|
|
||||||
login: 'login55',
|
|
||||||
firstname: 'firstname55',
|
|
||||||
lastname: 'lastname55',
|
|
||||||
email: 'email55',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 56,
|
|
||||||
login: 'login56',
|
|
||||||
firstname: 'firstname56',
|
|
||||||
lastname: 'lastname56',
|
|
||||||
email: 'email56',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
App.TicketState.refresh( [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
name: 'new',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
name: 'open',
|
|
||||||
note: 'some note 2',
|
|
||||||
active: false,
|
|
||||||
created_at: '2014-06-10T10:17:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
App.Ticket.refresh( [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'some title 1',
|
|
||||||
number: '4711',
|
|
||||||
priority_id: 1,
|
|
||||||
owner_id: 55,
|
|
||||||
customer_id: 56,
|
|
||||||
state_id: 1,
|
|
||||||
group_id: 2,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
title: 'some title 3',
|
|
||||||
number: '4713',
|
|
||||||
priority_id: 2,
|
|
||||||
owner_id: 56,
|
|
||||||
state_id: 1,
|
|
||||||
group_id: 2,
|
|
||||||
created_at: '2014-07-11T11:19:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
title: 'some title 2',
|
|
||||||
number: '4712',
|
|
||||||
priority_id: 1,
|
|
||||||
state_id: 2,
|
|
||||||
group_id: 1,
|
|
||||||
created_at: '2014-06-10T11:19:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
$('#table').append('<hr><h1>table complex I</h1><div id="table4"></div>')
|
|
||||||
el = $('#table4')
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
|
||||||
model: App.Ticket,
|
|
||||||
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
|
||||||
checkbox: true,
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), '', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), '#', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Titel', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Besitzer', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Kunde', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(6)').text().trim(), 'Priorität', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(7)').text().trim(), 'Gruppe', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(8)').text().trim(), 'Status', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(9)').text().trim(), 'Erstellt am', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 9, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').val(), '3', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').prop('checked'), '', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), '', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), '4713', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'some title 3', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'firstname56 lastname56', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(6)').text().trim(), '2 normal', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(7)').text().trim(), 'group 2', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(8)').text().trim(), 'neu', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(9)').text().trim(), '11.07.2014', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 9, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '4712', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'some title 2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), '-', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(6)').text().trim(), '1 niedrig', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(7)').text().trim(), 'group 1', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(8)').text().trim(), 'offen', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(9)').text().trim(), '10.06.2014', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td').length, 9, 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').val(), '1', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').prop('checked'), '', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1)').text().trim(), '', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(2)').text().trim(), '4711', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(3)').text().trim(), 'some title 1', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(4)').text().trim(), 'firstname55 lastname55', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(5)').text().trim(), 'firstname56 lastname56', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(6)').text().trim(), '1 niedrig', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(7)').text().trim(), 'group 2', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(8)').text().trim(), 'neu', 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(9)').text().trim(), '10.06.2014', 'check row 3')
|
|
||||||
|
|
||||||
el.find('input[name="bulk_all"]').click()
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').prop('checked'), true, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1) input').val(), '3', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), true, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').prop('checked'), true, 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1) input').val(), '1', 'check row 3')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table complex II</h1><div id="table5"></div>')
|
|
||||||
el = $('#table5')
|
|
||||||
var clickCheckbox = function (id, checked, e) {
|
|
||||||
console.log('clickCheckbox', id, checked, e.target)
|
|
||||||
};
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
|
||||||
model: App.Ticket,
|
|
||||||
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
|
||||||
checkbox: true,
|
|
||||||
groupBy: 'group',
|
|
||||||
bindCheckbox: {
|
|
||||||
events: {
|
|
||||||
'click': clickCheckbox,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), '', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), '#', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Titel', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Besitzer', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Kunde', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(6)').text().trim(), 'Priorität', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(7)').text().trim(), 'Status', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(8)').text().trim(), 'Erstellt am', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 1, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'group 1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 8, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), '4712', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'some title 2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), '-', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(6)').text().trim(), '1 niedrig', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(7)').text().trim(), 'offen', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(8)').text().trim(), '10.06.2014', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td').length, 1, 'check row 3')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1)').text().trim(), 'group 2', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td').length, 8, 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').val(), '3', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').prop('checked'), '', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1)').text().trim(), '', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(2)').text().trim(), '4713', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(3)').text().trim(), 'some title 3', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(4)').text().trim(), 'firstname56 lastname56', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(5)').text().trim(), '-', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(6)').text().trim(), '2 normal', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(7)').text().trim(), 'neu', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(8)').text().trim(), '11.07.2014', 'check row 4')
|
|
||||||
|
|
||||||
el.find('input[name="bulk"]:eq(1)').click()
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').prop('checked'), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1) input').val(), '2', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').prop('checked'), true, 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1) input').val(), '3', 'check row 4')
|
|
||||||
equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').prop('checked'), '', 'check row 5')
|
|
||||||
equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').val(), '1', 'check row 5')
|
|
||||||
el.find('tbody > tr:nth-child(5) > td:nth-child(1) label').click()
|
|
||||||
equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').prop('checked'), true, 'check row 5')
|
|
||||||
equal(el.find('tbody > tr:nth-child(5) > td:nth-child(1) input').val(), '1', 'check row 5')
|
|
||||||
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table Group By Direction DESC</h1><div id="table6"></div>')
|
|
||||||
el = $('#table6')
|
|
||||||
var clickCheckbox = function (id, checked, e) {
|
|
||||||
console.log('clickCheckbox', id, checked, e.target)
|
|
||||||
};
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
|
||||||
model: App.Ticket,
|
|
||||||
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
|
||||||
groupBy: 'priority',
|
|
||||||
groupDirection: 'DESC',
|
|
||||||
})
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), '2 normal', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(3) > td:nth-child(1)').text().trim(), '1 niedrig', 'check row 3')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table Group By Direction ASC</h1><div id="table7"></div>')
|
|
||||||
el = $('#table7')
|
|
||||||
var clickCheckbox = function (id, checked, e) {
|
|
||||||
console.log('clickCheckbox', id, checked, e.target)
|
|
||||||
};
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['number', 'title', 'owner', 'customer', 'priority', 'group', 'state', 'created_at'],
|
|
||||||
model: App.Ticket,
|
|
||||||
objects: App.Ticket.search({sortBy:'created_at', order: 'DESC'}),
|
|
||||||
groupBy: 'priority',
|
|
||||||
groupDirection: 'ASC',
|
|
||||||
})
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), '1 niedrig', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(4) > td:nth-child(1)').text().trim(), '2 normal', 'check row 4')
|
|
||||||
});
|
|
||||||
|
|
||||||
test('table test 2.1', function() {
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table with hash</h1><div id="table-hash2_1"></div>')
|
|
||||||
var el = $('#table-hash2_1')
|
|
||||||
App.Group.refresh( [
|
|
||||||
{
|
|
||||||
id: 5,
|
|
||||||
name: 'group 5',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
App.Channel.configure_delete = true
|
|
||||||
App.Channel.configure_clone = false
|
|
||||||
App.Channel.configure_attributes = [
|
|
||||||
{ name: 'adapter', display: 'Type', tag: 'select', multiple: false, null: false, options: { IMAP: 'IMAP', POP3: 'POP3' } },
|
|
||||||
{ name: 'options::host', display: 'Host', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::user', display: 'User', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::password', display: 'Password', tag: 'input', type: 'password', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::ssl', display: 'SSL', tag: 'select', multiple: false, null: true, options: { true: 'yes', false: 'no' }, translate: true, default: true},
|
|
||||||
{ name: 'options::folder', display: 'Folder', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: false, nulloption: true, relation: 'Group' },
|
|
||||||
{ name: 'active', display: 'Active', tag: 'select', multiple: false, null: false, options: { true: 'yes', false: 'no' }, translate: true, default: true },
|
|
||||||
]
|
|
||||||
|
|
||||||
App.Channel.refresh( [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
adapter: 'adapter1',
|
|
||||||
options: {
|
|
||||||
host: 'host1',
|
|
||||||
user: 'user1',
|
|
||||||
},
|
|
||||||
group_id: 5,
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
adapter: 'adapter2',
|
|
||||||
options: {
|
|
||||||
host: 'host2',
|
|
||||||
user: 'user2',
|
|
||||||
},
|
|
||||||
group_id: 5,
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
] )
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['adapter', 'options::host', 'options::user', 'active'],
|
|
||||||
model: App.Channel,
|
|
||||||
objects: App.Channel.search({sortBy:'adapter', order: 'ASC'}),
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Typ', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Host', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Benutzer', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Aktiv', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Aktion', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 5, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'adapter1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'host1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'user1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'ja', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5)').text().trim(), '', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-delete').length, 1, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-clone').length, 0, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 5, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'adapter2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'host2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'user2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), 'ja', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-delete').length, 1, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-clone').length, 0, 'check row 1')
|
|
||||||
});
|
|
||||||
|
|
||||||
test('table test 2.2', function() {
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table with hash</h1><div id="table-hash2_2"></div>')
|
|
||||||
var el = $('#table-hash2_2')
|
|
||||||
App.Group.refresh( [
|
|
||||||
{
|
|
||||||
id: 5,
|
|
||||||
name: 'group 5',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
App.Channel.configure_delete = false
|
|
||||||
App.Channel.configure_clone = true
|
|
||||||
App.Channel.configure_attributes = [
|
|
||||||
{ name: 'adapter', display: 'Type', tag: 'select', multiple: false, null: false, options: { IMAP: 'IMAP', POP3: 'POP3' } },
|
|
||||||
{ name: 'options::host', display: 'Host', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::user', display: 'User', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::password', display: 'Password', tag: 'input', type: 'password', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::ssl', display: 'SSL', tag: 'select', multiple: false, null: true, options: { true: 'yes', false: 'no' }, translate: true, default: true},
|
|
||||||
{ name: 'options::folder', display: 'Folder', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: false, nulloption: true, relation: 'Group' },
|
|
||||||
{ name: 'active', display: 'Active', tag: 'select', multiple: false, null: false, options: { true: 'yes', false: 'no' }, translate: true, default: true },
|
|
||||||
]
|
|
||||||
|
|
||||||
App.Channel.refresh( [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
adapter: 'adapter1',
|
|
||||||
options: {
|
|
||||||
host: 'host1',
|
|
||||||
user: 'user1',
|
|
||||||
},
|
|
||||||
group_id: 5,
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
adapter: 'adapter2',
|
|
||||||
options: {
|
|
||||||
host: 'host2',
|
|
||||||
user: 'user2',
|
|
||||||
},
|
|
||||||
group_id: 5,
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
] )
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['adapter', 'options::host', 'options::user', 'active'],
|
|
||||||
model: App.Channel,
|
|
||||||
objects: App.Channel.search({sortBy:'adapter', order: 'ASC'}),
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Typ', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Host', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Benutzer', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Aktiv', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Aktion', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 5, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'adapter1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'host1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'user1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'ja', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5)').text().trim(), '', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-delete').length, 0, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .js-clone').length, 1, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 5, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'adapter2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'host2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'user2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), 'ja', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5)').text().trim(), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions').length, 0, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-delete').length, 0, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .js-clone').length, 1, 'check row 1')
|
|
||||||
});
|
|
||||||
|
|
||||||
test('table test 3', function() {
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table with hash</h1><div id="table-hash2"></div>')
|
|
||||||
var el = $('#table-hash2')
|
|
||||||
App.Group.refresh( [
|
|
||||||
{
|
|
||||||
id: 5,
|
|
||||||
name: 'group 5',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
App.Channel.configure_delete = true
|
|
||||||
App.Channel.configure_clone = true
|
|
||||||
App.Channel.configure_attributes = [
|
|
||||||
{ name: 'adapter', display: 'Type', tag: 'select', multiple: false, null: false, options: { IMAP: 'IMAP', POP3: 'POP3' } },
|
|
||||||
{ name: 'options::host', display: 'Host', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::user', display: 'User', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::password', display: 'Password', tag: 'input', type: 'password', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'options::ssl', display: 'SSL', tag: 'select', multiple: false, null: true, options: { true: 'yes', false: 'no' }, translate: true, default: true},
|
|
||||||
{ name: 'options::folder', display: 'Folder', tag: 'input', type: 'text', limit: 120, null: true, autocapitalize: false },
|
|
||||||
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: false, nulloption: true, relation: 'Group' },
|
|
||||||
{ name: 'active', display: 'Active', tag: 'select', multiple: false, null: false, options: { true: 'yes', false: 'no' }, translate: true, default: true },
|
|
||||||
]
|
|
||||||
|
|
||||||
App.Channel.refresh( [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
adapter: 'adapter1',
|
|
||||||
options: {
|
|
||||||
host: 'host1',
|
|
||||||
user: 'user1',
|
|
||||||
},
|
|
||||||
group_id: 5,
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
adapter: 'adapter2',
|
|
||||||
options: {
|
|
||||||
host: 'host2',
|
|
||||||
user: 'user2',
|
|
||||||
},
|
|
||||||
group_id: 5,
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
] )
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['adapter', 'options::host', 'options::user', 'active'],
|
|
||||||
model: App.Channel,
|
|
||||||
objects: App.Channel.search({sortBy:'adapter', order: 'ASC'}),
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Typ', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Host', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Benutzer', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(4)').text().trim(), 'Aktiv', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(5)').text().trim(), 'Aktion', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 5, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'adapter1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'host1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'user1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(4)').text().trim(), 'ja', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions .js-delete').length, 1, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(5) .dropdown.dropdown--actions .js-clone').length, 1, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 5, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'adapter2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'host2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'user2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(4)').text().trim(), 'ja', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions .js-delete').length, 1, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(5) .dropdown.dropdown--actions .js-clone').length, 1, 'check row 2')
|
|
||||||
});
|
|
||||||
|
|
||||||
test('table test 4', function() {
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table with link</h1><div id="table-link1"></div>')
|
|
||||||
var el = $('#table-link1')
|
|
||||||
App.EmailAddress.refresh( [
|
|
||||||
{
|
|
||||||
id: 55,
|
|
||||||
realname: 'realname 55',
|
|
||||||
email: 'email 55',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 56,
|
|
||||||
realname: 'realname 56',
|
|
||||||
email: 'email 56',
|
|
||||||
active: true,
|
|
||||||
created_at: '2014-06-10T11:17:34.000Z',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
var callbackHeader = function (header) {
|
|
||||||
console.log('current header is', header);
|
|
||||||
// add new header item
|
|
||||||
var attribute = {
|
|
||||||
name: 'some name',
|
|
||||||
display: 'Some Name',
|
|
||||||
};
|
|
||||||
header.push(attribute);
|
|
||||||
console.log('new header is', header);
|
|
||||||
return header
|
|
||||||
}
|
|
||||||
var callbackAttributes = function(value, object, attribute, header, refObject) {
|
|
||||||
console.log('data of item col', value, object, attribute, header, refObject)
|
|
||||||
value = ' '
|
|
||||||
attribute.class = 'glyphicon glyphicon-user'
|
|
||||||
attribute.link = '#'
|
|
||||||
attribute.title = App.i18n.translateInline('Switch to')
|
|
||||||
if (object.id == 55) {
|
|
||||||
attribute.data = {
|
|
||||||
some: 'value55',
|
|
||||||
xxx: 55,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
attribute.data = {
|
|
||||||
some: 'value56',
|
|
||||||
xxx: 56,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
var switchTo = function(id, e) {
|
|
||||||
e.preventDefault()
|
|
||||||
console.log('switchTo with id', id, e.target)
|
|
||||||
//@disconnectClient()
|
|
||||||
//App.Auth._logout()
|
|
||||||
//window.location = App.Config.get('api_path') + '/sessions/switch/' + id
|
|
||||||
}
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
model: App.EmailAddress,
|
|
||||||
objects: App.EmailAddress.search({sortBy:'realname', order: 'ASC'}),
|
|
||||||
callbackHeader: [callbackHeader],
|
|
||||||
callbackAttributes: {
|
|
||||||
'some name': [ callbackAttributes ]
|
|
||||||
},
|
|
||||||
bindCol: {
|
|
||||||
'some name': {
|
|
||||||
events: {
|
|
||||||
'click': switchTo,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Anzeigename', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Some Name', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(1)').text().trim(), 'realname 55', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'email 55', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), '', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').hasClass('glyphicon-user'), true, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').hasClass('glyphicon'), true, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').attr('title'), 'Umschalten zu', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').data('some'), 'value55', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3) > a > span').data('xxx'), '55', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(1)').text().trim(), 'realname 56', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'email 56', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), '', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').hasClass('glyphicon-user'), true, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').hasClass('glyphicon'), true, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').attr('title'), 'Umschalten zu', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').data('some'), 'value56', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3) > a > span').data('xxx'), '56', 'check row 2')
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
test('table test 5', function() {
|
|
||||||
App.i18n.set('de-de')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>table with data</h1><div id="table-data1"></div>')
|
|
||||||
var el = $('#table-data1')
|
|
||||||
|
|
||||||
data = [
|
|
||||||
{ name: 'some name 1', data: 'some data 1', active: true },
|
|
||||||
{ name: 'some name 2', data: 'some data 2', active: false },
|
|
||||||
{ name: 'some name 3', data: 'some data 3', active: true },
|
|
||||||
]
|
|
||||||
new App.ControllerTable({
|
|
||||||
el: el,
|
|
||||||
overview: ['name', 'data', 'active'],
|
|
||||||
attribute_list: [
|
|
||||||
{ name: 'name', display: 'Name', type: 'text', style: 'width: 10%' },
|
|
||||||
{ name: 'data', display: 'Data', type: 'text' },
|
|
||||||
{ name: 'active', display: 'Active', type: 'text' },
|
|
||||||
],
|
|
||||||
objects: data
|
|
||||||
});
|
|
||||||
|
|
||||||
equal(el.find('table > thead > tr').length, 1, 'row count')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(1)').text().trim(), 'Name', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(2)').text().trim(), 'Data', 'check header')
|
|
||||||
equal(el.find('table > thead > tr > th:nth-child(3)').text().trim(), 'Aktiv', 'check header')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td').length, 3, 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:first').text().trim(), 'some name 1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'some data 1', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(1) > td:nth-child(3)').text().trim(), 'true', 'check row 1')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td').length, 3, 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:first').text().trim(), 'some name 2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(2)').text().trim(), 'some data 2', 'check row 2')
|
|
||||||
equal(el.find('tbody > tr:nth-child(2) > td:nth-child(3)').text().trim(), 'false', 'check row 2')
|
|
||||||
});
|
|
||||||
|
|
||||||
test('table test 6/7', function() {
|
|
||||||
$('#table').append('<hr><h1>sotable table with data</h1><div id="table-data6"></div>')
|
|
||||||
var el_head_sortable = $('#table-data6')
|
|
||||||
|
|
||||||
$('#table').append('<hr><h1>not sortable table with data</h1><div id="table-data7"></div>')
|
|
||||||
var el_not_head_sortable = $('#table-data7')
|
|
||||||
|
|
||||||
data = [
|
|
||||||
{ name: 'a item', data: 'g data', active: true },
|
|
||||||
{ name: 'b item', data: 'b data', active: false },
|
|
||||||
{ name: 'c item', data: 'z data', active: false },
|
|
||||||
{ name: 'd item', data: '', active: false },
|
|
||||||
]
|
|
||||||
|
|
||||||
new App.ControllerTable({
|
|
||||||
tableId: 'a',
|
|
||||||
el: el_head_sortable,
|
|
||||||
overview: ['name', 'data', 'active'],
|
|
||||||
attribute_list: [
|
|
||||||
{ name: 'name', display: 'Name', type: 'text', style: 'width: 10%', unsortable: true },
|
|
||||||
{ name: 'data', display: 'Data', type: 'text' },
|
|
||||||
{ name: 'active', display: 'Active', type: 'text' },
|
|
||||||
],
|
|
||||||
objects: data
|
|
||||||
});
|
|
||||||
|
|
||||||
new App.ControllerTable({
|
|
||||||
tableId: 'b',
|
|
||||||
el: el_not_head_sortable,
|
|
||||||
overview: ['name', 'data', 'active'],
|
|
||||||
attribute_list: [
|
|
||||||
{ name: 'name', display: 'Name', type: 'text', style: 'width: 10%', unsortable: true },
|
|
||||||
{ name: 'data', display: 'Data', type: 'text' },
|
|
||||||
{ name: 'active', display: 'Active', type: 'text' },
|
|
||||||
],
|
|
||||||
objects: data,
|
|
||||||
dndCallback: function() { return true }
|
|
||||||
});
|
|
||||||
|
|
||||||
equal(el_head_sortable.find('tbody > tr:nth-child(1) > td:first').text().trim(), 'a item', 'check row 1')
|
|
||||||
equal(el_not_head_sortable.find('tbody > tr:nth-child(1) > td:nth-child(2)').text().trim(), 'a item', 'check row 1')
|
|
||||||
|
|
||||||
ok(_.isEqual(list_items(el_head_sortable, 1), ['a item', 'b item', 'c item', 'd item']), 'sortable table is rendered correctly')
|
|
||||||
ok(_.isEqual(list_items(el_not_head_sortable, 2), ['a item', 'b item', 'c item', 'd item']), 'unsortable table is rendered correctly')
|
|
||||||
|
|
||||||
click_sort(el_head_sortable, 2)
|
|
||||||
click_sort(el_not_head_sortable, 3)
|
|
||||||
|
|
||||||
ok(_.isEqual(list_items(el_head_sortable, 1), ['b item', 'a item', 'c item', 'd item']), 'sortable table is sorted')
|
|
||||||
ok(_.isEqual(list_items(el_not_head_sortable, 2), ['a item', 'b item', 'c item', 'd item']), 'unsortable table is not sorted')
|
|
||||||
|
|
||||||
click_sort(el_head_sortable, 3)
|
|
||||||
ok(_.isEqual(list_items(el_head_sortable, 1), ['b item', 'c item', 'd item', 'a item']), 'sorting by boolean column works')
|
|
||||||
|
|
||||||
click_sort(el_head_sortable, 1)
|
|
||||||
ok(_.isEqual(list_items(el_head_sortable, 1), ['b item', 'c item', 'd item', 'a item']), 'sorting on name column is disabled')
|
|
||||||
});
|
|
||||||
|
|
||||||
function click_sort(table, column_number) {
|
|
||||||
table
|
|
||||||
.find(`table > thead > tr > th:nth-child(${column_number}) > .js-sort`)
|
|
||||||
.click()
|
|
||||||
}
|
|
||||||
|
|
||||||
function list_items(table, column_number) {
|
|
||||||
return table
|
|
||||||
.find(`tbody > tr > td:nth-child(${column_number})`)
|
|
||||||
.text()
|
|
||||||
.split("\n")
|
|
||||||
.filter(elem => elem.match(/[\w]+/))
|
|
||||||
.map(elem => elem.trim())
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,316 +0,0 @@
|
||||||
window.onload = function() {
|
|
||||||
|
|
||||||
test( "taskbar basic tests", function() {
|
|
||||||
// create task bar div
|
|
||||||
$('#taskbars').append('<hr><h1>taskbar basic tests</h1><div id="taskbar1"></div>')
|
|
||||||
App.TaskManager.init({
|
|
||||||
el: $('#taskbar1'),
|
|
||||||
offlineModus: true,
|
|
||||||
force: true,
|
|
||||||
})
|
|
||||||
|
|
||||||
// add tasks
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey1',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#1',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#1',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
// verify
|
|
||||||
task = App.TaskManager.get('TestKey1')
|
|
||||||
equal(task.notify, false)
|
|
||||||
deepEqual(task.state, undefined)
|
|
||||||
deepEqual(task.params, { "message": "#1", "shown": true })
|
|
||||||
|
|
||||||
// update
|
|
||||||
App.TaskManager.update('TestKey1', { 'state': 'abc' })
|
|
||||||
App.TaskManager.update('TestKey1', { 'params': { a: 12 } })
|
|
||||||
App.TaskManager.notify('TestKey1')
|
|
||||||
|
|
||||||
// verify
|
|
||||||
task = App.TaskManager.get('TestKey1')
|
|
||||||
equal(task.notify, true)
|
|
||||||
deepEqual(task.state, 'abc')
|
|
||||||
deepEqual(task.params, { "a": 12 })
|
|
||||||
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey2',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#2',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 2, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
// check task history
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), '#/some/url/#2')
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), '#/some/url/#1')
|
|
||||||
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey3',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#3',
|
|
||||||
},
|
|
||||||
show: false,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 2, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey3',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#3',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 3, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey4',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#4',
|
|
||||||
},
|
|
||||||
show: false,
|
|
||||||
persistent: true,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 3, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey5',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#5',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: true,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 4, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#5',show:'true',hide:'false',active:'true'")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey6',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#6',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 5, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey2').text(), "some test controller message:'#2',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
// remove task#2
|
|
||||||
App.TaskManager.remove('TestKey2')
|
|
||||||
|
|
||||||
equal($('#taskbars .content').length, 4, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
// activate task#3
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey3',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#3',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 4, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'true'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
|
|
||||||
|
|
||||||
// activate task#1
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey1',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#1',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 4, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#1',show:'true',hide:'true',active:'true'")
|
|
||||||
|
|
||||||
equal($('#taskbars #content_permanent_TestKey1').text(), "some test controller message:'#1',show:'true',hide:'true',active:'true'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey3').text(), "some test controller message:'#3',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey5').text(), "some test controller message:'#5',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
equal($('#taskbars #content_permanent_TestKey6').text(), "some test controller message:'#6',show:'true',hide:'true',active:'false'", "check active content!")
|
|
||||||
|
|
||||||
// remove task#1
|
|
||||||
App.TaskManager.remove('TestKey1')
|
|
||||||
|
|
||||||
// verify if task#3 is active
|
|
||||||
equal($('#taskbars .content').length, 3, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 0, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "")
|
|
||||||
|
|
||||||
// remove task#3
|
|
||||||
App.TaskManager.remove('TestKey3')
|
|
||||||
|
|
||||||
// verify if task#5 is active
|
|
||||||
equal($('#taskbars .content').length, 2, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 0, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "")
|
|
||||||
|
|
||||||
// remove task#5 // can not get removed because of permanent task
|
|
||||||
App.TaskManager.remove('TestKey5')
|
|
||||||
|
|
||||||
// verify if task#5 is active
|
|
||||||
equal($('#taskbars .content').length, 2, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 0, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "")
|
|
||||||
|
|
||||||
// create task#7
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKey7',
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: '#7',
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
equal($('#taskbars .content').length, 3, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 1, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "some test controller message:'#7',show:'true',hide:'false',active:'true'", "check active content!")
|
|
||||||
|
|
||||||
// remove task#7
|
|
||||||
App.TaskManager.remove('TestKey7')
|
|
||||||
|
|
||||||
// verify if task#5 is active
|
|
||||||
equal($('#taskbars .content').length, 2, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').length, 0, "check available active contents")
|
|
||||||
equal($('#taskbars .content.active').text(), "")
|
|
||||||
|
|
||||||
// check task history
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), '#/some/url/#6')
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), '#/some/url/#5')
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), '#/some/url/#6')
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), '#/some/url/#6')
|
|
||||||
|
|
||||||
// remove task#6
|
|
||||||
App.TaskManager.remove('TestKey6')
|
|
||||||
|
|
||||||
// check task history
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), false)
|
|
||||||
equal(App.TaskManager.nextTaskUrl(), false)
|
|
||||||
|
|
||||||
// check max tabs
|
|
||||||
var times = 5;
|
|
||||||
App.TaskManager.tasksAutoCleanupDelayTime(200)
|
|
||||||
App.TaskManager.tasksAutoCleanupTaskMax(3)
|
|
||||||
|
|
||||||
for(var i=0; i < times; i++){
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKeyLoop' + i,
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: "#" + i,
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
equal(App.TaskManager.all().length, 5)
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
App.Delay.set(function() {
|
|
||||||
test( "taskbar check max tabs 2", function() {
|
|
||||||
|
|
||||||
equal(App.TaskManager.all().length, 3)
|
|
||||||
|
|
||||||
var times = 5;
|
|
||||||
for(var i=0; i < times; i++){
|
|
||||||
App.TaskManager.execute({
|
|
||||||
key: 'TestKeyLoop2' + i,
|
|
||||||
controller: 'TestController1',
|
|
||||||
params: {
|
|
||||||
message: "#" + i,
|
|
||||||
changedState: true
|
|
||||||
},
|
|
||||||
show: true,
|
|
||||||
persistent: false,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
equal(App.TaskManager.all().length, 8)
|
|
||||||
|
|
||||||
})
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
App.Delay.set(function() {
|
|
||||||
test( "taskbar check max tabs 5", function() {
|
|
||||||
|
|
||||||
equal(App.TaskManager.all().length, 5)
|
|
||||||
|
|
||||||
// destroy task bar
|
|
||||||
App.TaskManager.reset()
|
|
||||||
|
|
||||||
// check if any taskar exists
|
|
||||||
equal($('#taskbars .content').length, 0, "check available active contents")
|
|
||||||
})
|
|
||||||
}, 2000);
|
|
||||||
|
|
||||||
}
|
|
|
@ -2,174 +2,62 @@
|
||||||
|
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
RSpec.describe 'QUnit', type: :system, authenticated_as: false, set_up: true, websocket: false do
|
RSpec.describe 'QUnit', type: :system, authenticated_as: false, set_up: true, websocket: false, time_zone: 'Europe/London' do
|
||||||
|
matcher :pass_qunit_test do
|
||||||
|
match do
|
||||||
|
actual.has_css?('.total', wait: 120)
|
||||||
|
|
||||||
def q_unit_tests(test_name)
|
actual.has_css? '.result .failed', text: '0', wait: 0
|
||||||
|
|
||||||
visit "/tests_#{test_name}"
|
|
||||||
|
|
||||||
yield if block_given?
|
|
||||||
|
|
||||||
expect(page).to have_css('.result', text: 'Tests completed')
|
|
||||||
expect(page).to have_css('.result .failed', text: '0')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def async_q_unit_tests(*args)
|
failure_message do
|
||||||
q_unit_tests(*args) do
|
messages = actual
|
||||||
wait(120, interval: 3).until_constant do
|
.all('.qunit-assert-list li.fail')
|
||||||
page.has_css?('.total', wait: 0) ? find('.total').text : nil
|
.map { |elem| "> #{failure_name(elem)}\n#{failure_source(elem)}" }
|
||||||
|
.join("\n")
|
||||||
|
|
||||||
|
"Failed #{failed_count} out of #{total_count}:\n#{messages}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def failure_source(row)
|
||||||
|
row
|
||||||
|
.find('.test-source pre')
|
||||||
|
.text
|
||||||
|
.strip
|
||||||
|
.lines[0, 2]
|
||||||
|
.reject { |line| line.include? 'qunit-' }
|
||||||
|
.join
|
||||||
|
end
|
||||||
|
|
||||||
|
def failure_name(row)
|
||||||
|
row
|
||||||
|
.find('.test-message')
|
||||||
|
.text
|
||||||
|
.strip
|
||||||
|
end
|
||||||
|
|
||||||
|
def failed_count
|
||||||
|
actual.find('.result .failed').text
|
||||||
|
end
|
||||||
|
|
||||||
|
def total_count
|
||||||
|
actual.find('.result .total').text
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'Core' do
|
files = if (basename = ENV['QUNIT_TEST'])
|
||||||
async_q_unit_tests('core')
|
[basename]
|
||||||
|
else
|
||||||
|
Pathname
|
||||||
|
.glob('public/assets/tests/qunit/*.js')
|
||||||
|
.map { |elem| elem.basename(elem.extname).to_s }
|
||||||
|
.sort
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'I18n' do
|
files.each do |elem|
|
||||||
async_q_unit_tests('i18n')
|
it elem.humanize do
|
||||||
end
|
visit "/tests_#{elem}"
|
||||||
|
expect(page).to pass_qunit_test
|
||||||
context 'UI' do
|
|
||||||
|
|
||||||
it 'Base' do
|
|
||||||
q_unit_tests('ui')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Local storage' do
|
|
||||||
q_unit_tests('local_storage')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Model' do
|
|
||||||
async_q_unit_tests('model')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Model binding' do
|
|
||||||
q_unit_tests('model_binding')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Model UI' do
|
|
||||||
|
|
||||||
if !ENV['CI']
|
|
||||||
skip("Can't run locally because of dependence of special Timezone")
|
|
||||||
end
|
|
||||||
|
|
||||||
q_unit_tests('model_ui')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Model Ticket' do
|
|
||||||
q_unit_tests('model_ticket')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Ticket selector' do
|
|
||||||
q_unit_tests('ticket_selector')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Image Service' do
|
|
||||||
q_unit_tests('image_service')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'Form' do
|
|
||||||
|
|
||||||
it 'Base' do
|
|
||||||
async_q_unit_tests('form')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Trim' do
|
|
||||||
q_unit_tests('form_trim')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Find' do
|
|
||||||
q_unit_tests('form_find')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Timer' do
|
|
||||||
q_unit_tests('form_timer')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Color' do
|
|
||||||
q_unit_tests('form_color')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Extended' do
|
|
||||||
q_unit_tests('form_extended')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Searchable select' do
|
|
||||||
q_unit_tests('form_searchable_select')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Tree select' do
|
|
||||||
q_unit_tests('form_tree_select')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Column select' do
|
|
||||||
q_unit_tests('form_column_select')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Ticket perform action' do
|
|
||||||
async_q_unit_tests('form_ticket_perform_action')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Ticket macro' do
|
|
||||||
q_unit_tests('ticket_macro')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Validation' do
|
|
||||||
q_unit_tests('form_validation')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Skip rendering' do
|
|
||||||
q_unit_tests('form_skip_rendering')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'SLA times' do
|
|
||||||
q_unit_tests('form_sla_times')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'DateTime' do
|
|
||||||
q_unit_tests('form_datetime')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Core Workflow' do
|
|
||||||
q_unit_tests('form_core_workflow')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'Form AJAX', searchindex: true do
|
|
||||||
before do
|
|
||||||
configure_elasticsearch
|
|
||||||
rebuild_searchindex
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'autocompletion ajax' do
|
|
||||||
async_q_unit_tests('form_autocompletion_ajax')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'Table' do
|
|
||||||
|
|
||||||
it 'Base' do
|
|
||||||
q_unit_tests('table')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Extended' do
|
|
||||||
q_unit_tests('table_extended')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'HTML utils' do
|
|
||||||
q_unit_tests('html_utils')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'Taskbar' do
|
|
||||||
q_unit_tests('taskbar')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'Knowlede Base Editor' do
|
|
||||||
it 'Vdeo Embeding' do
|
|
||||||
q_unit_tests('kb_video_embeding')
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue