Просмотр исходного кода

Added test for model binding after relogin.

Martin Edenhofer 6 лет назад
Родитель
Сommit
11639e2d33

+ 4 - 2
app/assets/javascripts/app/models/_application_model.coffee

@@ -869,5 +869,7 @@ set new attributes of model (remove already available attributes)
     @configure_attributes = $.extend(true, [], @org_configure_attributes)
 
   @resetCallbacks: ->
-    @SUBSCRIPTION_ITEM = {}
-    @SUBSCRIPTION_COLLECTION = {}
+    if @SUBSCRIPTION_ITEM
+      @SUBSCRIPTION_ITEM = {}
+    if @SUBSCRIPTION_COLLECTION
+      @SUBSCRIPTION_COLLECTION = {}

+ 16 - 0
app/views/tests/model_binding.html.erb

@@ -0,0 +1,16 @@
+
+<link rel="stylesheet" href="/assets/tests/qunit-1.21.0.css">
+<script src="/assets/tests/qunit-1.21.0.js"></script>
+<script src="/assets/tests/model_binding.js"></script>
+
+<style type="text/css">
+body {
+  padding-top: 0px;
+}
+</style>
+
+<script type="text/javascript">
+</script>
+
+<div id="qunit" class="u-dontfold"></div>
+

+ 1 - 0
config/routes/test.rb

@@ -3,6 +3,7 @@ Zammad::Application.routes.draw do
   match '/tests_core',                    to: 'tests#core',                       via: :get
   match '/tests_ui',                      to: 'tests#ui',                         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_form',                    to: 'tests#form',                       via: :get
   match '/tests_form_tree_select',        to: 'tests#form_tree_select',           via: :get

+ 52 - 0
public/assets/tests/model_binding.js

@@ -0,0 +1,52 @@
+window.onload = function() {
+
+test("model bindings and rebinding", function() {
+
+  var callback_count1 = 0
+  var callbacks = App.Template._callbacks
+  Object.keys(callbacks).forEach(function(key) {
+    callback_count1 = callback_count1 + callbacks[key].length
+  });
+  equal(callback_count1, 2)
+
+  equal(App.Template.SUBSCRIPTION_COLLECTION, undefined)
+
+  App.Template.clearInMemory()
+
+  equal(App.Template.SUBSCRIPTION_COLLECTION, undefined)
+
+  var callback_count2 = 0
+  callbacks = App.Template._callbacks
+  Object.keys(callbacks).forEach(function(key) {
+    callback_count2 = callback_count2 + callbacks[key].length
+  });
+  equal(callback_count2, callback_count1)
+
+  var render = function() {}
+  var subscribe_id = App.Template.subscribe(render, {initFetch: true})
+
+  ok(_.isObject(App.Template.SUBSCRIPTION_COLLECTION))
+  ok(!_.isEmpty(App.Template.SUBSCRIPTION_COLLECTION))
+
+  var callback_count3 = 0
+  callbacks = App.Template._callbacks
+  Object.keys(callbacks).forEach(function(key) {
+    callback_count3 = callback_count3 + callbacks[key].length
+  });
+  equal(callback_count3, 6)
+
+  App.Template.clearInMemory()
+
+  ok(_.isObject(App.Template.SUBSCRIPTION_COLLECTION))
+  ok(_.isEmpty(App.Template.SUBSCRIPTION_COLLECTION))
+
+  var callback_count4 = 0
+  callbacks = App.Template._callbacks
+  Object.keys(callbacks).forEach(function(key) {
+    callback_count4 = callback_count4 + callbacks[key].length
+  });
+  equal(callback_count4, callback_count3)
+
+});
+
+}

+ 7 - 0
test/browser/aab_unit_test.rb

@@ -28,6 +28,13 @@ class AAbUnitTest < TestCase
       value: '0',
     )
 
+    location(url: browser_url + '/tests_model_binding')
+    sleep 8
+    match(
+      css: '.result .failed',
+      value: '0',
+    )
+
     location(url: browser_url + '/tests_model_ui')
     sleep 8
     match(