123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- var App = require('app');
- require('mixins/common/table_server_view_mixin');
- describe('App.MainConfigHistoryView', function() {
- var view = Em.View.create(App.TableServerViewMixin, {
- filteredCount: 0,
- totalCount: 0,
- content: [],
- filteredContent: [],
- refresh: Em.K,
- saveFilterConditions: Em.K,
- controller: Em.Object.create({
- name: 'mainConfigHistoryController',
- paginationProps: [
- {
- name: 'displayLength',
- value: '25'
- },
- {
- name: 'startIndex',
- value: 0
- }
- ]
- })
- });
- describe('#pageContent', function() {
- beforeEach(function(){
- view.propertyDidChange('pageContent');
- });
- it('filtered content is empty', function() {
- view.set('filteredContent', []);
- expect(view.get('pageContent')).to.be.empty;
- });
- it('filtered content contain one item', function() {
- view.set('filteredCount', 1);
- view.set('filteredContent', [Em.Object.create()]);
- expect(view.get('pageContent')).to.eql([Em.Object.create()]);
- });
- it('filtered content contain two unsorted items', function() {
- view.set('filteredCount', 2);
- view.set('filteredContent', [
- Em.Object.create({index:2}),
- Em.Object.create({index:1})
- ]);
- expect(view.get('pageContent')).to.eql([
- Em.Object.create({index:1}),
- Em.Object.create({index:2})
- ]);
- });
- });
- describe('#updatePagination', function() {
- beforeEach(function () {
- sinon.spy(view, 'refresh');
- sinon.stub(App.db, 'setDisplayLength', Em.K);
- sinon.stub(App.db, 'setStartIndex', Em.K);
- });
- afterEach(function () {
- view.refresh.restore();
- App.db.setStartIndex.restore();
- App.db.setDisplayLength.restore();
- });
- it('displayLength is correct', function() {
- view.set('displayLength', '50');
- view.set('startIndex', null);
- view.updatePagination();
- expect(view.refresh.calledOnce).to.be.true;
- expect(App.db.setStartIndex.called).to.be.false;
- expect(App.db.setDisplayLength.calledWith('mainConfigHistoryController', '50')).to.be.true;
- expect(view.get('controller.paginationProps').findProperty('name', 'startIndex').value).to.equal(0);
- expect(view.get('controller.paginationProps').findProperty('name', 'displayLength').value).to.equal('50');
- });
- it('startIndex is correct', function() {
- view.set('displayLength', null);
- view.set('startIndex', 10);
- view.updatePagination();
- expect(view.refresh.calledOnce).to.be.true;
- expect(App.db.setStartIndex.calledWith('mainConfigHistoryController', 10)).to.be.true;
- expect(App.db.setDisplayLength.called).to.be.false;
- expect(view.get('controller.paginationProps').findProperty('name', 'startIndex').value).to.equal(10);
- expect(view.get('controller.paginationProps').findProperty('name', 'displayLength').value).to.equal('50');
- });
- it('displayLength and startIndex are correct', function() {
- view.set('displayLength', '100');
- view.set('startIndex', 20);
- view.updatePagination();
- expect(view.refresh.calledOnce).to.be.true;
- expect(App.db.setStartIndex.calledWith('mainConfigHistoryController', 20)).to.be.true;
- expect(App.db.setDisplayLength.calledWith('mainConfigHistoryController', '100')).to.be.true;
- expect(view.get('controller.paginationProps').findProperty('name', 'startIndex').value).to.equal(20);
- expect(view.get('controller.paginationProps').findProperty('name', 'displayLength').value).to.equal('100');
- });
- it('displayLength and startIndex are null', function() {
- view.set('displayLength', null);
- view.set('startIndex', null);
- view.updatePagination();
- expect(view.refresh.calledOnce).to.be.true;
- expect(App.db.setStartIndex.called).to.be.false;
- expect(App.db.setDisplayLength.called).to.be.false;
- expect(view.get('controller.paginationProps').findProperty('name', 'startIndex').value).to.equal(20);
- expect(view.get('controller.paginationProps').findProperty('name', 'displayLength').value).to.equal('100');
- });
- });
- describe('#updateFilter()', function() {
- beforeEach(function () {
- sinon.stub(view, 'saveFilterConditions', Em.K);
- sinon.stub(view, 'refresh', Em.K);
- sinon.spy(view, 'updateFilter');
- });
- afterEach(function () {
- view.saveFilterConditions.restore();
- view.updateFilter.restore();
- view.refresh.restore();
- });
- it('filteringComplete is false', function() {
- this.clock = sinon.useFakeTimers();
- view.set('filteringComplete', false);
- view.updateFilter(1, '', 'string');
- expect(view.get('controller.resetStartIndex')).to.be.false;
- expect(view.saveFilterConditions.calledWith(1, '', 'string', false)).to.be.true;
- view.set('filteringComplete', true);
- this.clock.tick(view.get('filterWaitingTime'));
- expect(view.updateFilter.calledWith(1, '', 'string')).to.be.true;
- this.clock.restore();
- });
- it('filteringComplete is true', function() {
- view.set('filteringComplete', true);
- view.updateFilter(1, '', 'string');
- expect(view.get('controller.resetStartIndex')).to.be.true;
- expect(view.refresh.calledOnce).to.be.true;
- });
- });
- describe('#resetStartIndex()', function() {
- it('resetStartIndex is false and filteredCount is 0', function() {
- view.set('filteredCount', 0);
- view.set('controller.resetStartIndex', false);
- view.set('startIndex', 0);
- view.resetStartIndex();
- expect(view.get('startIndex')).to.equal(0);
- });
- it('resetStartIndex is true and filteredCount is 0', function() {
- view.set('filteredCount', 0);
- view.set('controller.resetStartIndex', true);
- view.set('startIndex', 0);
- view.resetStartIndex();
- expect(view.get('startIndex')).to.equal(0);
- });
- it('resetStartIndex is false and filteredCount is 5', function() {
- view.set('filteredCount', 5);
- view.set('controller.resetStartIndex', false);
- view.set('startIndex', 0);
- view.resetStartIndex();
- expect(view.get('startIndex')).to.equal(0);
- });
- it('resetStartIndex is true and filteredCount is 5', function() {
- view.set('controller.resetStartIndex', true);
- view.set('filteredCount', 5);
- view.set('startIndex', 0);
- view.resetStartIndex();
- expect(view.get('startIndex')).to.equal(1);
- });
- });
- });
|