示例#1
0
test('it works', function() {
  var TextNgramsObject = Ember.Object.extend(TextNgramsMixin);
  var subject = TextNgramsObject.create();
  ok(subject);
});
示例#2
0
 setValidation: function() {
   this.set('validation', Ember.Object.create({}));
 }.on('init'),
示例#3
0
/**
 * Creates the validations class that will become `model.validations`.
 *   - Setup parent validation inheritance
 *   - Normalize nested keys (i.e. 'details.dob') into objects (i.e { details: { dob: validator() }})
 *   - Merge normalized validations with parent
 *   - Create global CPs (i.e. 'isValid', 'messages', etc...)
 *
 * @method createValidationsClass
 * @private
 * @param  {Object} inheritedValidationsClass
 * @param  {Object} validations
 * @param  {Object} owner
 * @return {Ember.Object}
 */
function createValidationsClass(inheritedValidationsClass, validations, owner) {
  let validationRules = {};
  let validatableAttributes = Object.keys(validations);

  // Setup validation inheritance
  if (inheritedValidationsClass && inheritedValidationsClass.__isCPValidationsClass__) {
    const inheritedValidations = inheritedValidationsClass.create();

    validationRules = merge(validationRules, inheritedValidations.get('_validationRules'));
    validatableAttributes = emberArray(inheritedValidations.get('validatableAttributes').concat(validatableAttributes)).uniq();
  }

  // Normalize nested keys into actual objects and merge them with parent object
  Object.keys(validations).reduce((obj, key) => {
    assign(obj, key, validations[key]);
    return obj;
  }, validationRules);

  // Create the mixin that holds all the top level validation props (isValid, messages, etc)
  const TopLevelProps = createTopLevelPropsMixin(validatableAttributes);

  // Create the `attrs` class which will add the current model reference once instantiated
  const AttrsClass = createAttrsClass(validatableAttributes, validationRules, owner);

  // Create `validations` class
  const ValidationsClass = Ember.Object.extend(TopLevelProps, {
    model: null,
    attrs: null,
    isValidations: true,

    validatableAttributes: computed(function () {
      return validatableAttributes;
    }).readOnly(),

    // Caches
    _validators: null,
    _debouncedValidations: null,

    // Private
    _validationRules: computed(function () {
      return validationRules;
    }).readOnly(),

    validate,
    validateSync,

    init() {
      this._super(...arguments);
      this.setProperties({
        attrs: AttrsClass.create({
          _model: this.get('model')
        }),
        _validators: {},
        _debouncedValidations: {}
      });
    },

    destroy() {
      this._super(...arguments);
      const validatableAttrs = get(this, 'validatableAttributes');
      const debouncedValidations = get(this, '_debouncedValidations');

      // Initiate attrs destroy to cleanup any remaining model references
      this.get('attrs').destroy();

      // Cancel all debounced timers
      validatableAttrs.forEach(attr => {
        const attrCache = get(debouncedValidations, attr);

        if (!isNone(attrCache)) {
          // Itterate over each attribute and cancel all of its debounced validations
          Object.keys(attrCache).forEach(v => run.cancel(attrCache[v]));
        }
      });
    }
  });

  ValidationsClass.reopenClass({
    __isCPValidationsClass__: true
  });

  return ValidationsClass;
}
 	return this.get('content').map((image) => {
 		return Ember.Object.create(image);
 	});
示例#5
0
import Ember from 'ember';
import { test, moduleForComponent } from 'ember-qunit';
import sinon from 'sinon';
import componentMixin from 'sl-ember-behavior/mixins/component';

let behaviorService;

moduleForComponent( 'sl-able', 'Unit | Component | sl able', {
    unit: true,

    beforeEach() {
        behaviorService = Ember.Object.create({
            isAble: sinon.stub().returns( true )
        });
    }
});

test( 'Successfully mixed component', function( assert ) {
    assert.ok(
        componentMixin.detect( this.subject() )
    );
});

/**
 * Ensures that the template is wrapping the content in a span tag and not in
 * any block-level tags. While it appears that core Ember functionality is being
 * tested this test is ensuring that the implied contract about how this non-UI
 * component is rendered into the DOM is adhered to.
 */
test( 'Renders as a span tag with no classes', function( assert ) {
    this.subject({
示例#6
0
 return this.get('ajax').get("/repos/" + (repo.get('id')) + "/key", (data) => {
   return Ember.Object.create({
     fingerprint: data.fingerprint
   });
 });
示例#7
0
test('it works', function() {
  var EditPageControllerObject = Ember.Object.extend(EditPageControllerMixin);
  var subject = EditPageControllerObject.create();
  ok(subject);
});
 Ember.run(function() {
   component.set('errors', Ember.Object.create({attribute: 'email', message: 'invalid email'}));
 });
示例#9
0
文件: factory.js 项目: bverjat/mapp
import Ember from 'ember';
import Struct from 'mapp/models/struct';
import SurfaceVisualization from './surface';
import SymbolVisualization from './symbol';

let VisualizationFactory = Ember.Object.extend({});
VisualizationFactory.reopenClass({
  
  classForType(type) {
    switch (type) {
      case "surface":
        return SurfaceVisualization;
      case "symbol":
        return SymbolVisualization;
    }
    throw new Error(`Unknow mapping type ${type}`);
  },
  
  createInstance(type, props = {}) {
    let o = this.classForType(type).create(props);
    o.set('type', type);
    return o;
  },
  
  restoreInstance(json, refs) {
    if (json != null) {
      let o = this.classForType(json.type).restore(json, refs);
      return o;
    } else {
      return null;
    }
import Ember from 'ember';
import Errors from '../mixins/errors';
import Serializable from '../mixins/serializable';

export default Ember.Object.extend(Errors, Serializable, {
  _serializableProperties: ['declarationOption', 'signatoryType', 'visited'],
  declarationOption: null,
  signatoryType: null,
  errors: Ember.computed('declarationOption', 'signatoryType', function() {
    const errors = {};

    if (Ember.isBlank(this.get('declarationOption'))) {
      errors['declarationOption'] = 'Required';
    }

    if (Ember.isBlank(this.get('signatoryType'))) {
      errors['signatoryType'] = 'Required';
    }

    return errors;
  })
});
/**
 * Define HashMap class
 *
 * Simple use of associative array as hash table allowing buckets w/
 * chaining for duplicates.
 */

var RelationshipNode = Ember.Object.extend({

	next: undefined,
	prev: undefined,
	item: undefined,

	initialize: Ember.on('init', function() {
		this.setProperties({
			next: undefined,
			prev: undefined,
			item: undefined
		});
	})

});


var RelationshipHash = Ember.Object.extend({

	buckets: {},

	initialize: Ember.on('init', function() {
		this.setProperties({
示例#12
0
 it('works', function() {
   let UiAnimatableObject = Ember.Object.extend(AnimatableMixin);
   let subject = UiAnimatableObject.create();
   expect(subject).to.be.ok;
 });
export default Ember.Object.extend({

  connection: null,
  cable: null,

  init() {
    this._super(...arguments);

    this.pollInterval      = { min: 3, max: 30 };
    this.staleThreshold    = 6;
    this.reconnectAttempts = 0;
    this.startedAt         = null;
    this.stoppedAt         = null;
    this.pingedAt          = null;
    this.pollTimeout       = null;
  },

  start() {
    if (!this.get('isRunning')) {
      this.set('startedAt', this.now());
      this.set('stoppedAt', null);
      this.startPolling();

      // TODO
      // Use actions instead of event listeners!
      // document.addEventListener(
      //   "visibilitychange", this.get('visibilityDidChange'));

      this.get('cable').log(`ConnectionMonitor started. pollInterval = ${this.get('getPollInterval')} ms`);
    }
  },

  stop() {
    if (this.get('isRunning')) {
      this.set('stoppedAt', this.now());
      this.stopPolling();

      // TODO
      // Use actions instead of event listeners!
      // document.removeEventListener(
      //   "visibilitychange", this.visibilityDidChange);

      this.get('cable').log("ConnectionMonitor stopped");
    }
  },

  isRunning: computed('startedAt', 'stoppedAt', function() {
    return (this.get('startedAt') !== null) &&
           (this.get('stoppedAt') === null);
  }),

  recordPing() {
    this.set('pingedAt', this.now());
  },

  recordConnect() {
    this.set('reconnectAttempts', 0);
    this.recordPing();
    this.set('disconnectAt', null);
    this.get('cable').log("ConnectionMonitor recorded connect");
  },

  recordDisconnect() {
    this.set('disconnectAt', this.now());
    this.get('cable').log("ConnectionMonitor recorded disconnect");
  },

  startPolling() {
    this.stopPolling();
    this.poll();
  },

  stopPolling() {
    Ember.run.cancel(this.get('pollTimeout'));
  },

  poll() {
    let runLater = Ember.run.later(this, () => {
      this.reconnectIfStale();
      this.poll();
    }, this.get('getPollInterval'));

    this.set('pollTimeout', runLater);
  },

  getPollInterval: computed('reconnectAttempts', function() {
    return Math.max(3, Math.min(30, 5 * Math.log(this.get('reconnectAttempts') + 1) )) * 1000;
  }),

  reconnectIfStale() {
    if(this.connectionIsStale()) {
      this.get('cable').log(`ConnectionMonitor detected stale connection.
      reconnectAttempts = ${this.get('reconnectAttempts')},
      pollInterval      = ${this.get('getPollInterval')} ms,
      time disconnected = ${this.secondsSince(this.get('disconnectedAt'))} s,
      stale threshold   = ${this.get('staleThreshold')} s`);

      this.incrementProperty('reconnectAttempts');

      if (!this.disconnectedRecently()) {
        this.get('connection').reopen();
      }
    }
  },

  connectionIsStale() {
    return this.secondsSince(this.get('pingedAt') ||
           this.get('startedAt')) > this.get('staleThreshold');
  },

  disconnectedRecently() {
    return this.get('disconnectedAt') &&
           this.secondsSince(this.get('disconnectedAt') ) < this.get('staleThreshold');
  },

  visibilityDidChange() {
    if (document.visibilityState === "visible") {
      Ember.run.later(this, () => {
        if (this.connectionIsStale() || !this.get('connection').isOpen()) {
          this.get('cable').log(`ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = ${document.visibilityState}`);
          this.get('connection').reopen();
        }
      }, 200);
    }
  },

  now() {
    return new Date().getTime();
  },

  secondsSince(time) {
    return (Date.now() - time) / 1000;
  },

  clamp(number, min, max) {
    return Math.max(min, Math.min(max, number));
  }

});
 addValue: function() {
   this.send('openModal', 'admin.lookup.edit', Ember.Object.create({
     isNew: true
   }));
 },
示例#15
0
test('generateBindingPath 3x2 simple', function(assert) {
  var PathFactoryObject = Ember.Object.extend(PathFactoryMixin, {
    svgenv: Ember.Object.create({
      colW: 40,
      rowH: 40,
      paddingT: 0,
      paddingR: 0,
      paddingB: 0,
      paddingL: 0
    })
  });
  var subject = PathFactoryObject.create();

  // #__
  // ___
  var a = Ember.Object.create({col: 0, row: 0, x: 0, y: 0});
  var b = Ember.Object.create({col: 0, row: 0, x: 0, y: 0});
  var result = subject.generateBindingPath(a, b);
  var expected = null;
  assert.equal(result, expected, 'same node');

  // ##_
  // ___
  a = Ember.Object.create({col: 0, row: 0, x:  0, y: 0});
  b = Ember.Object.create({col: 1, row: 0, x: 40, y: 0});
  result = subject.generateBindingPath(a, b);
  expected = null;
  assert.equal(result, expected, 'contiguous a b (0,0) (1,0)');

  result = subject.generateBindingPath(b, a);
  assert.equal(result, expected, 'same row, contiguous b a');

  // 3x2

  // #_#
  // ___
  a = Ember.Object.create({col: 0, row: 0, x: 0, y: 0});
  b = Ember.Object.create({col: 2, row: 0, x: 80, y: 0});
  result = subject.generateBindingPath(a, b);
  expected = 'M40 20 v20 h40 v-20';
  assert.equal(result, expected, '(0,0) (2,0)');

  result = subject.generateBindingPath(b, a);
  assert.equal(result, expected, '(0,0) (2,0)');

  // #__
  // __#
  a = Ember.Object.create({col: 0, row: 0, x: 0, y: 0});
  b = Ember.Object.create({col: 2, row: 1, x: 0, y: 0});
  result = subject.generateBindingPath(a, b);
  expected = 'M40 20 v20 h40 v20';
  assert.equal(result, expected, '(0,0) (2,1)');

  result = subject.generateBindingPath(b, a);
  assert.equal(result, expected);

  // __#
  // #__
  a = Ember.Object.create({col: 0, row: 1, x: 0, y: 40});
  b = Ember.Object.create({col: 2, row: 0, x: 80, y: 0});
  result = subject.generateBindingPath(a, b);
  expected = 'M40 60 v-20 h40 v-20';
  assert.equal(result, expected, '(0,1) (2,0)');

  result = subject.generateBindingPath(b, a);
  assert.equal(result, expected, '(2,0) (0,1)');

  // 2x3
  
  // _#
  // __
  // _#
  a = Ember.Object.create({col: 1, row: 0, x: 40, y: 0});
  b = Ember.Object.create({col: 1, row: 2, x: 40, y: 80});
  result = subject.generateBindingPath(a, b);
  expected = 'M80 20 v20 v40 v20';
  assert.equal(result, expected, '(1,0) (1,2)');

  result = subject.generateBindingPath(b, a);
  assert.equal(result, expected, '(1,2) (1,0)');

  // #_
  // __
  // _#
  a = Ember.Object.create({col: 0, row: 0, x: 0,  y: 0});
  b = Ember.Object.create({col: 1, row: 2, x: 40, y: 80});
  result = subject.generateBindingPath(a, b);
  expected = 'M40 20 v20 v40 v20';
  assert.equal(result, expected, '(0,0) (1,2)');

  result = subject.generateBindingPath(b, a);
  assert.equal(result, expected, '(1,2) (0,0)');
});
示例#16
0
文件: route.js 项目: LLParse/ui
 return store.find('stack', params.stack_id).then((stack) => {
   return Ember.Object.create({
     stack: stack,
     all: all,
   });
 });
示例#17
0
test('it works', function(assert) {
  var PathFactoryObject = Ember.Object.extend(PathFactoryMixin);
  var subject = PathFactoryObject.create();
  assert.ok(subject);
});
/**
 * Created by stephenwhite on 20/01/15.
 */
import Ember from 'ember';

export default Ember.Object.extend({
  username : ''
});
示例#19
0
文件: bands.js 项目: paavani/emb_app
import Ember from 'ember';
//model is not defined ,so we create like this

var Band=Ember.Object.extend({
	name: '',
});

var ledZeppelin = Band.create({ name : 'Led Zeppelin'});
var pearlJam  	= Band.create({ name : 'Pearl Jam'});
var fooFighters	= Band.create({ name : 'Foo Fighters'});

var bands = [ledZeppelin,pearlJam,fooFighters];


export default Ember.Route.extend({
	model(){
		return bands;
	}
});
        let links = Ember.Object.create({
            HOME: [
                {
                    name: 'eosf.navbar.search',
                    href: serviceLinks.search,
                    type: 'search'
                },
                {
                    name: 'eosf.navbar.support',
                    href: serviceLinks.osfSupport
                },
                {
                    name: 'eosf.navbar.donate',
                    href: 'https://cos.io/donate',
                    type: 'donateToCOS'
                },

            ],
            PREPRINTS: [
                {
                    name: 'eosf.navbar.addAPreprint',
                    href: Ember.isEmpty(baseServiceUrl) ? serviceLinks.preprintsSubmit : baseServiceUrl + 'submit',
                    type: 'addAPreprint'
                },
                {
                    name: 'eosf.navbar.search',
                    href: Ember.isEmpty(baseServiceUrl) ? serviceLinks.preprintsDiscover : baseServiceUrl + 'discover',
                    type: 'search'
                },
                {
                    name: 'eosf.navbar.support',
                    href: serviceLinks.preprintsSupport
                },
                {
                    name: 'eosf.navbar.donate',
                    href: 'https://cos.io/donate',
                    type: 'donateToCOS'
                },

            ],
            REGISTRIES: [
                {
                    name: 'eosf.navbar.search',
                    href: serviceLinks.registriesDiscover,
                    type: 'search'
                },
                {
                    name: 'eosf.navbar.support',
                    href: serviceLinks.registriesSupport
                },
                {
                    name: 'eosf.navbar.donate',
                    href: 'https://cos.io/donate',
                    type: 'donateToCOS'
                },

            ],
            MEETINGS: [
                {
                    name: 'eosf.navbar.search',
                    href: serviceLinks.meetingsHome,
                    type: 'search'
                },
                {
                    name: 'eosf.navbar.donate',
                    href: 'https://cos.io/donate',
                    type: 'donateToCOS'
                },

            ]
        });
示例#21
0
文件: route.js 项目: elhabibmed/ui
import {denormalizeName} from 'ui/services/settings';

export default Ember.Route.extend({
  settings: Ember.inject.service(),

  beforeModel() {
    var store = this.get('store');
    return Ember.RSVP.all([
      store.find('setting', denormalizeName(C.SETTING.API_HOST)),
      store.find('setting', denormalizeName(C.SETTING.CATALOG_URL)),
      store.find('setting', denormalizeName(C.SETTING.VM_ENABLED)),
    ]);
  },

  model() {
    var settings = this.get('settings');
    return Ember.Object.create({
      host:     settings.get(C.SETTING.API_HOST),
      catalog:  settings.get(C.SETTING.CATALOG_URL),
      vm:       settings.get(C.SETTING.VM_ENABLED) || false,
    });
  },

  resetController(controller, isExiting /*, transition*/ ) {
    if (isExiting) {
      controller.set('backToAdd', false);
      controller.set('error', null);
    }
  }
});
test('it works', function(assert) {
  var HeritablePropertiesObject = Ember.Object.extend(HeritablePropertiesMixin);
  var subject = HeritablePropertiesObject.create();
  assert.ok(subject);
});
示例#23
0
    {
      label: 'Save',
      action: 'save',
    },
    {
      label: 'Edit',
      action: 'edit',
    },
    {
      label: 'Delete',
      action: 'delete',
    }
  ]),

  optionsNoLabel: Ember.A([
    Ember.Object.create({ action: 'save' }),
    Ember.Object.create({ label: 'Delete', action: 'delete' }),
    Ember.Object.create({ label: 'Edit', action: 'edit' })
  ]),

  optionsPrimary: Ember.A([
    Ember.Object.create({ label: 'Save', action: 'save', primary: true }),
    Ember.Object.create({ label: 'Delete', action: 'delete' }),
    Ember.Object.create({ label: 'Edit', action: 'edit' })
  ]),

  optionsContext: Ember.A([
    Ember.Object.create({ label: 'Save', action: 'saveItem', primary: true }),
    Ember.Object.create({ label: 'Delete', action: 'deleteItem' }),
    Ember.Object.create({ label: 'Edit', action: 'editItem' })
  ]),
示例#24
0
test('_genPathC2CR basic', function(assert) {
  var PathFactoryObject = Ember.Object.extend(PathFactoryMixin, {
    svgenv: Ember.Object.create({
      colW: 40,
      rowH: 40
    })
  });
  var subject = PathFactoryObject.create();

  /* 2x2 */

  var result = subject._genPathC2CR(0, 0),
      expected = null;
  assert.equal(result, expected, 'same node');

  result = subject._genPathC2CR(1, 0);
  expected = null;
  assert.equal(result, expected, 'node to the right');

  result = subject._genPathC2CR(-1, 0);
  expected = null;
  assert.equal(result, expected, 'node to the left');

  result = subject._genPathC2CR(0, 1);
  expected = null;
  assert.equal(result, expected, 'node below');

  result = subject._genPathC2CR(1, 1);
  expected = null;
  assert.equal(result, expected, 'diagonal node');

  /* 2x3 */

  /* 0,0 */
  result = subject._genPathC2CR(2, 0);
  expected = 'h40';
  assert.equal(result, expected, '(0,0) (2,0)');

  result = subject._genPathC2CR(2, 1);
  expected = 'h40';
  assert.equal(result, expected, '(0,0) (2,1)');

  /* 0,1 */
  result = subject._genPathC2CR(2, -1);
  expected = 'h40';
  assert.equal(result, expected, '(0,1) (2,0)');

  result = subject._genPathC2CR(2, 0);
  expected = 'h40';
  assert.equal(result, expected, '(0,1) (2,1)');

  /* 3x2 */

  /* 0,0 */
  result = subject._genPathC2CR(0, 2);
  expected = 'v40';
  assert.equal(result, expected, '(0,0) (0,2)');

  result = subject._genPathC2CR(1, 2);
  expected = 'v40';
  assert.equal(result, expected, '(0,0) (1,2)');

  /* 1,0 */
  result = subject._genPathC2CR(-1, 2);
  expected = 'v40';
  assert.equal(result, expected, '(1,0) (0,2)');

  result = subject._genPathC2CR(0, 2);
  expected = 'v40';
  assert.equal(result, expected, '(1,0) (1,2)');

  // non basic cases

  result = subject._genPathC2CR(3, -7);
  expected = 'h80 v-240';
  assert.equal(result, expected, '(3,14) (6,7)');
});
 query: function() {
     return Ember.Object.create();
 }.property(),
示例#26
0
test('generatePathToChild', function(assert) {
  var PathFactoryObject = Ember.Object.extend(PathFactoryMixin, {
    svgenv: Ember.Object.create({
      paddingT: 5,
      paddingB: 5,
      colW: 40,
      rowH: 20
    })
  });
  var subject = PathFactoryObject.create();

  var a = Ember.Object.create({
        col: 0,
        row: 0
      }),
      b = Ember.Object.create({
        col: 0,
        row: 0
      }),
      result = subject.generatePathToChild(a, b),
      expected = '';
  assert.equal(result, expected, 'same node');
  /*
     __
    |a |
    |_b|
  */
  a = Ember.Object.create({
    col: 0,
    row: 0,
    x: 0,
    y: 0,
    width: 40,
    height: 10,
    cx: 20,
    y_padded: 5, 
  });
  b = Ember.Object.create({
    col: 1,
    row: 1
  });
  result = subject.generatePathToChild(a, b);
  expected = 'M20 15 v5 h20 h20 h-2.5 l2.5 5 l2.5 -5 h-2.5';
  assert.equal(result, expected, 'diagonal');

  /*
     __
    |ab|
    |__|
  */
  a = Ember.Object.create({
    col: 0,
    row: 0,
    x: 0,
    y: 0,
    width: 40,
    height: 10,
    cx: 20,
    y_padded: 5, 
  });
  b = Ember.Object.create({
    col: 1,
    row: 0,
  });
  result = subject.generatePathToChild(a, b);
  expected = 'M20 15 v5 h20 v-20 h20 h-2.5 l2.5 5 l2.5 -5 h-2.5';
  assert.equal(result, expected, 'node to the right (0,0) (1,0)');

  /*
     __
    |a |
    |b_|
  */
  a = Ember.Object.create({
    col: 0,
    row: 0,
    x: 0,
    y: 0,
    width: 40,
    height: 10,
    cx: 20,
    y_padded: 5, 
  });
  b = Ember.Object.create({
    col: 0,
    row: 1,
  });
  result = subject.generatePathToChild(a, b);
  expected = 'M20 15 v5 h-2.5 l2.5 5 l2.5 -5 h-2.5';
  assert.equal(result, expected, 'node to the right (0,0) (1,0)');

});
示例#27
0
export default Ember.Object.extend({

  /**
   * Return a user from the store. If the user doesn't exist, create a new user
   *
   * @param {String} username
   * @return {Promise}
   */
  getUserByUsername: function(username) {
    var store = this.get('store');
    username = username.replace(/[^a-zA-Z0-9 -]/g, '');
    return store.findRecord('user', username).then(function(user) {
      return user;
    }, function() {
      // HACK: `findRecord()` creates an entry in internal models which prevents `createRecord()` from working
      if (typeof store.typeMapFor === 'function') {
        delete store.typeMapFor(store.modelFor('user')).idToRecord[username];
      } else if (typeof store._internalModelsFor === 'function') {
        store._internalModelsFor('user').remove('user', username);
      }
      // A user couldn't be found, so create a new user
      var user = store.createRecord('user', {
        id: username,
        created: new Date().getTime()
      });
      // Save the user
      user.save();
      return user;
    });
  }

});
示例#28
0
test('_orderNodes', function(assert) {
  var PathFactoryObject = Ember.Object.extend(PathFactoryMixin, {
    svgenv: Ember.Object.create({
      colW: 10,
      rowH: 10,
      paddingT: 0,
      paddingR: 0,
      paddingB: 0,
      paddingL: 0
    })
  });
  var subject = PathFactoryObject.create();

  // 3x3 node `a` at the center (1,1)

  var a = Ember.Object.create({col: 1, row: 1});
  var b = Ember.Object.create({col: 1, row: 1});
  var result = subject._orderNodes(a, b);
  var expected = null;
  assert.equal(result, expected, 'same node');

  // swap needed

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 0, row: 0});
  result = subject._orderNodes(a, b);
  expected = {a: b, b: a};
  assert.deepEqual(result, expected, '1,1 0,0 swap');

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 0, row: 1});
  result = subject._orderNodes(a, b);
  expected = {a: b, b: a};
  assert.deepEqual(result, expected, '1,1 0,1 swap');

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 0, row: 2});
  result = subject._orderNodes(a, b);
  expected = {a: b, b: a};
  assert.deepEqual(result, expected, '1,1 0,2 swap');

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 1, row: 0});
  result = subject._orderNodes(a, b);
  expected = {a: b, b: a};
  assert.deepEqual(result, expected, '1,1 1,0 swap');

  // no swap

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 2, row: 0});
  result = subject._orderNodes(a, b);
  expected = {a: a, b: b};
  assert.deepEqual(result, expected, '1,1 2,0');

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 2, row: 1});
  result = subject._orderNodes(a, b);
  expected = {a: a, b: b};
  assert.deepEqual(result, expected, '1,1 2,1');

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 1, row: 2});
  result = subject._orderNodes(a, b);
  expected = {a: a, b: b};
  assert.deepEqual(result, expected, '1,1 1,2');

  a = Ember.Object.create({col: 1, row: 1});
  b = Ember.Object.create({col: 2, row: 2});
  result = subject._orderNodes(a, b);
  expected = {a: a, b: b};
  assert.deepEqual(result, expected, '1,1 2,2');
});
示例#29
0
    // Two states change could trigger new pages generation
    // 1. When queryCount is changed
    // 2. When pageSize is changed
    // queryCount change is initiated from outside of component
    // pageSize change could be initiated from inside (from the drop down) or from outside (query parameters)
    _createPages() {
        let self = this,
            size = Math.floor(self.get('queryCount') / self.get('pageSize')) + 1,
            range = Array(size),
            pagesArray = self.get('pagesArray');

        pagesArray.clear();
        let i = 1;
        for (i = 1; i <= range.length; i++) {
            var obj = Ember.Object.create({text: i, className: self.get('pageNumber') === i ? "active": ""});
            pagesArray.pushObject(obj);
        }
    },

    // highlight the selected page number
    _markPaginationActive: function(pageNumber) {
        let self = this,
            array = self.get('pagesArray');

        array.forEach(function(item) {
            if (item.text === pageNumber) {
                item.set("className", "active");
            } else {
                item.set("className", "");
            }
示例#30
0
import Ember from 'ember';
import {
  module,
  test
} from 'qunit';
import startApp from 'contacts/tests/helpers/start-app';
import { testMixin as FactoryGuyTestMixin } from 'factory-guy';
import contactFactory from '../factories/contact';
import FactoryGuy from 'factory-guy';

var application;
var TestHelper = Ember.Object.createWithMixins(FactoryGuyTestMixin);
var testHelper;

module('Acceptance: Contacts', {
  beforeEach: function() {
    application = startApp();
    testHelper = TestHelper.setup(application);
  },

  afterEach: function() {
    Ember.run(function() { testHelper.teardown(); });
    Ember.run(application, 'destroy');
  }
});

test('visiting /contacts', function(assert) {
  testHelper.handleFindAll('contact', 2);
  visit('/contacts');

  andThen(function() {