chore(util): add removeArrayItem fn

This commit is contained in:
Adam Bradley
2016-11-29 10:21:47 -06:00
parent a4ab7cae8f
commit bdf02d4280
7 changed files with 379 additions and 378 deletions

View File

@ -1,6 +1,7 @@
import { Menu } from './menu';
import { MenuType } from './menu-types';
import { Platform } from '../../platform/platform';
import { removeArrayItem } from '../../util/util';
/**
@ -291,10 +292,7 @@ export class MenuController {
* @private
*/
unregister(menu: Menu) {
let index = this._menus.indexOf(menu);
if (index > -1) {
this._menus.splice(index, 1);
}
removeArrayItem(this._menus, menu);
}
/**

View File

@ -8,7 +8,7 @@ import { convertToView, convertToViews, NavOptions, DIRECTION_BACK, DIRECTION_FO
import { setZIndex } from './nav-util';
import { DeepLinker } from './deep-linker';
import { GestureController } from '../gestures/gesture-controller';
import { isBlank, isNumber, isPresent, assert } from '../util/util';
import { isBlank, isNumber, isPresent, assert, removeArrayItem } from '../util/util';
import { isViewController, ViewController } from './view-controller';
import { Ion } from '../components/ion';
import { Keyboard } from '../util/keyboard';
@ -893,10 +893,7 @@ export class NavControllerBase extends Ion implements NavController {
}
unregisterChildNav(nav: any) {
const index = this._children.indexOf(nav);
if (index > -1) {
this._children.splice(index, 1);
}
removeArrayItem(this._children, nav);
}
destroy() {

View File

@ -2,6 +2,7 @@ import { EventEmitter, NgZone, OpaqueToken } from '@angular/core';
import { QueryParams } from './query-params';
import { ready, windowDimensions, flushDimensionCache } from '../util/dom';
import { removeArrayItem } from '../util/util';
/**
@ -373,10 +374,7 @@ export class Platform {
// return a function to unregister this back button action
return () => {
let index = this._bbActions.indexOf(action);
if (index > -1) {
this._bbActions.splice(index, 1);
}
removeArrayItem(this._bbActions, action);
};
}
@ -524,14 +522,11 @@ export class Platform {
* @private
*/
onResize(cb: Function): Function {
let self = this;
const self = this;
self._onResizes.push(cb);
return function() {
const index = self._onResizes.indexOf(cb);
if (index > -1) {
self._onResizes.splice(index, 1);
}
removeArrayItem(self._onResizes, cb);
};
}

View File

@ -51,7 +51,7 @@ export function rafFrames(framesToWait: number, callback: Function) {
if (framesToWait === 0) {
callback();
}else if (framesToWait < 2) {
} else if (framesToWait < 2) {
rafId = nativeRaf(callback);
} else {

View File

@ -1,4 +1,5 @@
import { Injectable } from '@angular/core';
import { removeArrayItem } from './util';
/**
@ -15,10 +16,7 @@ export class Form {
}
deregister(input: any) {
let index = this._inputs.indexOf(input);
if (index > -1) {
this._inputs.splice(index, 1);
}
removeArrayItem(this._inputs, input);
if (input === this._focused) {
this._focused = null;
}

View File

@ -1,362 +1,366 @@
import * as util from '../util';
describe('isPrimitive', () => {
describe('util', () => {
it('should be false for array/object values', () => {
expect(util.isPrimitive({})).toEqual(false);
expect(util.isPrimitive(new Date())).toEqual(false);
expect(util.isPrimitive([])).toEqual(false);
});
describe('isPrimitive', () => {
it('should be false for blank values', () => {
expect(util.isPrimitive(NaN)).toEqual(false);
expect(util.isPrimitive(null)).toEqual(false);
expect(util.isPrimitive(undefined)).toEqual(false);
});
it('should be true for number', () => {
expect(util.isPrimitive(-1)).toEqual(true);
expect(util.isPrimitive(0)).toEqual(true);
expect(util.isPrimitive(1)).toEqual(true);
});
it('should be true for boolean', () => {
expect(util.isPrimitive(true)).toEqual(true);
expect(util.isPrimitive(false)).toEqual(true);
});
it('should be true for string', () => {
expect(util.isPrimitive('')).toEqual(true);
expect(util.isPrimitive(' ')).toEqual(true);
expect(util.isPrimitive('hi')).toEqual(true);
});
});
describe('isCheckedProperty', () => {
it('should test a=undefined', () => {
expect(util.isCheckedProperty(undefined, undefined)).toBe(true);
expect(util.isCheckedProperty(undefined, null)).toBe(true);
expect(util.isCheckedProperty(undefined, '')).toBe(true);
expect(util.isCheckedProperty(undefined, 'string')).toBe(false);
expect(util.isCheckedProperty(undefined, 0)).toBe(false);
expect(util.isCheckedProperty(undefined, '0')).toBe(false);
expect(util.isCheckedProperty(undefined, 1000)).toBe(false);
expect(util.isCheckedProperty(undefined, '1000')).toBe(false);
expect(util.isCheckedProperty(undefined, -1)).toBe(false);
expect(util.isCheckedProperty(undefined, true)).toBe(false);
expect(util.isCheckedProperty(undefined, false)).toBe(false);
expect(util.isCheckedProperty(undefined, 'true')).toBe(false);
expect(util.isCheckedProperty(undefined, 'false')).toBe(false);
});
it('should test a=null', () => {
expect(util.isCheckedProperty(null, undefined)).toBe(true);
expect(util.isCheckedProperty(null, null)).toBe(true);
expect(util.isCheckedProperty(null, '')).toBe(true);
expect(util.isCheckedProperty(null, 'string')).toBe(false);
expect(util.isCheckedProperty(null, 0)).toBe(false);
expect(util.isCheckedProperty(null, '0')).toBe(false);
expect(util.isCheckedProperty(null, 1000)).toBe(false);
expect(util.isCheckedProperty(null, '1000')).toBe(false);
expect(util.isCheckedProperty(null, -1)).toBe(false);
expect(util.isCheckedProperty(null, true)).toBe(false);
expect(util.isCheckedProperty(null, false)).toBe(false);
expect(util.isCheckedProperty(null, 'true')).toBe(false);
expect(util.isCheckedProperty(null, 'false')).toBe(false);
});
it('should test a=""', () => {
expect(util.isCheckedProperty('', undefined)).toBe(true);
expect(util.isCheckedProperty('', null)).toBe(true);
expect(util.isCheckedProperty('', '')).toBe(true);
expect(util.isCheckedProperty('', 'string')).toBe(false);
expect(util.isCheckedProperty('', 0)).toBe(false);
expect(util.isCheckedProperty('', '0')).toBe(false);
expect(util.isCheckedProperty('', 1000)).toBe(false);
expect(util.isCheckedProperty('', '1000')).toBe(false);
expect(util.isCheckedProperty('', -1)).toBe(false);
expect(util.isCheckedProperty('', true)).toBe(false);
expect(util.isCheckedProperty('', false)).toBe(false);
expect(util.isCheckedProperty('', 'true')).toBe(false);
expect(util.isCheckedProperty('', 'false')).toBe(false);
});
it('should test a=true', () => {
expect(util.isCheckedProperty(true, undefined)).toBe(false);
expect(util.isCheckedProperty(true, null)).toBe(false);
expect(util.isCheckedProperty(true, '')).toBe(false);
expect(util.isCheckedProperty(true, 'string')).toBe(false);
expect(util.isCheckedProperty(true, 0)).toBe(false);
expect(util.isCheckedProperty(true, '0')).toBe(false);
expect(util.isCheckedProperty(true, 1000)).toBe(false);
expect(util.isCheckedProperty(true, '1000')).toBe(false);
expect(util.isCheckedProperty(true, -1)).toBe(false);
expect(util.isCheckedProperty(true, true)).toBe(true);
expect(util.isCheckedProperty(true, false)).toBe(false);
expect(util.isCheckedProperty(true, 'true')).toBe(true);
expect(util.isCheckedProperty(true, 'false')).toBe(false);
});
it('should test a="true"', () => {
expect(util.isCheckedProperty('true', undefined)).toBe(false);
expect(util.isCheckedProperty('true', null)).toBe(false);
expect(util.isCheckedProperty('true', '')).toBe(false);
expect(util.isCheckedProperty('true', 'string')).toBe(false);
expect(util.isCheckedProperty('true', 0)).toBe(false);
expect(util.isCheckedProperty('true', '0')).toBe(false);
expect(util.isCheckedProperty('true', 1000)).toBe(false);
expect(util.isCheckedProperty('true', '1000')).toBe(false);
expect(util.isCheckedProperty('true', -1)).toBe(false);
expect(util.isCheckedProperty('true', true)).toBe(true);
expect(util.isCheckedProperty('true', false)).toBe(false);
expect(util.isCheckedProperty('true', 'true')).toBe(true);
expect(util.isCheckedProperty('true', 'false')).toBe(false);
});
it('should test a=false', () => {
expect(util.isCheckedProperty(false, undefined)).toBe(false);
expect(util.isCheckedProperty(false, null)).toBe(false);
expect(util.isCheckedProperty(false, '')).toBe(false);
expect(util.isCheckedProperty(false, 'string')).toBe(false);
expect(util.isCheckedProperty(false, 0)).toBe(false);
expect(util.isCheckedProperty(false, '0')).toBe(false);
expect(util.isCheckedProperty(false, 1000)).toBe(false);
expect(util.isCheckedProperty(false, '1000')).toBe(false);
expect(util.isCheckedProperty(false, -1)).toBe(false);
expect(util.isCheckedProperty(false, true)).toBe(false);
expect(util.isCheckedProperty(false, false)).toBe(true);
expect(util.isCheckedProperty(false, 'true')).toBe(false);
expect(util.isCheckedProperty(false, 'false')).toBe(true);
});
it('should test a="false"', () => {
expect(util.isCheckedProperty('false', undefined)).toBe(false);
expect(util.isCheckedProperty('false', null)).toBe(false);
expect(util.isCheckedProperty('false', '')).toBe(false);
expect(util.isCheckedProperty('false', 'string')).toBe(false);
expect(util.isCheckedProperty('false', 0)).toBe(false);
expect(util.isCheckedProperty('false', '0')).toBe(false);
expect(util.isCheckedProperty('false', 1000)).toBe(false);
expect(util.isCheckedProperty('false', '1000')).toBe(false);
expect(util.isCheckedProperty('false', -1)).toBe(false);
expect(util.isCheckedProperty('false', true)).toBe(false);
expect(util.isCheckedProperty('false', false)).toBe(true);
expect(util.isCheckedProperty('false', 'true')).toBe(false);
expect(util.isCheckedProperty('false', 'false')).toBe(true);
});
it('should test a=0', () => {
expect(util.isCheckedProperty(0, undefined)).toBe(false);
expect(util.isCheckedProperty(0, null)).toBe(false);
expect(util.isCheckedProperty(0, '')).toBe(false);
expect(util.isCheckedProperty(0, 'string')).toBe(false);
expect(util.isCheckedProperty(0, 0)).toBe(true);
expect(util.isCheckedProperty(0, '0')).toBe(true);
expect(util.isCheckedProperty(0, 1000)).toBe(false);
expect(util.isCheckedProperty(0, '1000')).toBe(false);
expect(util.isCheckedProperty(0, -1)).toBe(false);
expect(util.isCheckedProperty(0, true)).toBe(false);
expect(util.isCheckedProperty(0, false)).toBe(false);
expect(util.isCheckedProperty(0, 'true')).toBe(false);
expect(util.isCheckedProperty(0, 'false')).toBe(false);
});
it('should test a="0"', () => {
expect(util.isCheckedProperty('0', undefined)).toBe(false);
expect(util.isCheckedProperty('0', null)).toBe(false);
expect(util.isCheckedProperty('0', '')).toBe(false);
expect(util.isCheckedProperty('0', 'string')).toBe(false);
expect(util.isCheckedProperty('0', 0)).toBe(true);
expect(util.isCheckedProperty('0', '0')).toBe(true);
expect(util.isCheckedProperty('0', 1000)).toBe(false);
expect(util.isCheckedProperty('0', '1000')).toBe(false);
expect(util.isCheckedProperty('0', -1)).toBe(false);
expect(util.isCheckedProperty('0', true)).toBe(false);
expect(util.isCheckedProperty('0', false)).toBe(false);
expect(util.isCheckedProperty('0', 'true')).toBe(false);
expect(util.isCheckedProperty('0', 'false')).toBe(false);
});
it('should test a=1000', () => {
expect(util.isCheckedProperty(1000, undefined)).toBe(false);
expect(util.isCheckedProperty(1000, null)).toBe(false);
expect(util.isCheckedProperty(1000, '')).toBe(false);
expect(util.isCheckedProperty(1000, 'string')).toBe(false);
expect(util.isCheckedProperty(1000, 0)).toBe(false);
expect(util.isCheckedProperty(1000, '0')).toBe(false);
expect(util.isCheckedProperty(1000, 1000)).toBe(true);
expect(util.isCheckedProperty(1000, '1000')).toBe(true);
expect(util.isCheckedProperty(1000, -1)).toBe(false);
expect(util.isCheckedProperty(1000, true)).toBe(false);
expect(util.isCheckedProperty(1000, false)).toBe(false);
expect(util.isCheckedProperty(1000, 'true')).toBe(false);
expect(util.isCheckedProperty(1000, 'false')).toBe(false);
});
it('should test a="1000"', () => {
expect(util.isCheckedProperty('1000', undefined)).toBe(false);
expect(util.isCheckedProperty('1000', null)).toBe(false);
expect(util.isCheckedProperty('1000', '')).toBe(false);
expect(util.isCheckedProperty('1000', 'string')).toBe(false);
expect(util.isCheckedProperty('1000', 0)).toBe(false);
expect(util.isCheckedProperty('1000', '0')).toBe(false);
expect(util.isCheckedProperty('1000', 1000)).toBe(true);
expect(util.isCheckedProperty('1000', '1000')).toBe(true);
expect(util.isCheckedProperty('1000', -1)).toBe(false);
expect(util.isCheckedProperty('1000', true)).toBe(false);
expect(util.isCheckedProperty('1000', false)).toBe(false);
expect(util.isCheckedProperty('1000', 'true')).toBe(false);
expect(util.isCheckedProperty('1000', 'false')).toBe(false);
});
it('should test a=-1', () => {
expect(util.isCheckedProperty(-1, undefined)).toBe(false);
expect(util.isCheckedProperty(-1, null)).toBe(false);
expect(util.isCheckedProperty(-1, '')).toBe(false);
expect(util.isCheckedProperty(-1, 'string')).toBe(false);
expect(util.isCheckedProperty(-1, 0)).toBe(false);
expect(util.isCheckedProperty(-1, '0')).toBe(false);
expect(util.isCheckedProperty(-1, 1000)).toBe(false);
expect(util.isCheckedProperty(-1, '1000')).toBe(false);
expect(util.isCheckedProperty(-1, -1)).toBe(true);
expect(util.isCheckedProperty(-1, true)).toBe(false);
expect(util.isCheckedProperty(-1, false)).toBe(false);
expect(util.isCheckedProperty(-1, 'true')).toBe(false);
expect(util.isCheckedProperty(-1, 'false')).toBe(false);
});
it('should test a="-1"', () => {
expect(util.isCheckedProperty('-1', undefined)).toBe(false);
expect(util.isCheckedProperty('-1', null)).toBe(false);
expect(util.isCheckedProperty('-1', '')).toBe(false);
expect(util.isCheckedProperty('-1', 'string')).toBe(false);
expect(util.isCheckedProperty('-1', 0)).toBe(false);
expect(util.isCheckedProperty('-1', '0')).toBe(false);
expect(util.isCheckedProperty('-1', 1000)).toBe(false);
expect(util.isCheckedProperty('-1', '1000')).toBe(false);
expect(util.isCheckedProperty('-1', -1)).toBe(true);
expect(util.isCheckedProperty('-1', true)).toBe(false);
expect(util.isCheckedProperty('-1', false)).toBe(false);
expect(util.isCheckedProperty('-1', 'true')).toBe(false);
expect(util.isCheckedProperty('-1', 'false')).toBe(false);
});
it('should test a="string"', () => {
expect(util.isCheckedProperty('string', undefined)).toBe(false);
expect(util.isCheckedProperty('string', null)).toBe(false);
expect(util.isCheckedProperty('string', '')).toBe(false);
expect(util.isCheckedProperty('string', 'string')).toBe(true);
expect(util.isCheckedProperty('string', 'otherstring')).toBe(false);
expect(util.isCheckedProperty('string', 0)).toBe(false);
expect(util.isCheckedProperty('string', '0')).toBe(false);
expect(util.isCheckedProperty('string', 1000)).toBe(false);
expect(util.isCheckedProperty('string', '1000')).toBe(false);
expect(util.isCheckedProperty('string', -1)).toBe(false);
expect(util.isCheckedProperty('string', true)).toBe(false);
expect(util.isCheckedProperty('string', false)).toBe(false);
expect(util.isCheckedProperty('string', 'true')).toBe(false);
expect(util.isCheckedProperty('string', 'false')).toBe(false);
});
});
describe('isTrueProperty', () => {
it('should be true from boolean true', () => {
expect(util.isTrueProperty(true)).toBe(true);
});
it('should be true from string "true"', () => {
expect(util.isTrueProperty('true')).toBe(true);
expect(util.isTrueProperty('TRUE')).toBe(true);
expect(util.isTrueProperty(' true ')).toBe(true);
});
it('should be true from string "on"', () => {
expect(util.isTrueProperty(true)).toBe(true);
});
it('should be true from empty string ""', () => {
expect(util.isTrueProperty('')).toBe(true);
expect(util.isTrueProperty(' ')).toBe(true);
});
it('should be true from number greater than zero', () => {
expect(util.isTrueProperty(1)).toBe(true);
expect(util.isTrueProperty(999)).toBe(true);
});
it('should be false from boolean false', () => {
expect(util.isTrueProperty(false)).toBe(false);
});
it('should be false from string "off"', () => {
expect(util.isTrueProperty(true)).toBe(true);
});
it('should be false from null', () => {
expect(util.isTrueProperty(null)).toBe(false);
});
it('should be false from undefined', () => {
expect(util.isTrueProperty(undefined)).toBe(false);
});
it('should be false from string "false"', () => {
expect(util.isTrueProperty('false')).toBe(false);
expect(util.isTrueProperty(' FALSE ')).toBe(false);
expect(util.isTrueProperty('doesnt actually matter')).toBe(false);
});
});
describe('extend', () => {
it('should extend simple', () => {
var obj = { a: '0', c: '0' };
expect( util.assign(obj, { a: '1', b: '2' }) ).toBe(obj);
expect(obj).toEqual({ a: '1', b: '2', c: '0' });
});
it('should extend complex', () => {
expect(util.assign(
{ a: '0', b: '0' },
{ b: '1', c: '1' },
{ c: '2', d: '2' }
)).toEqual({
a: '0',
b: '1',
c: '2',
d: '2'
});
});
});
describe('defaults', () => {
it('should simple defaults', () => {
var obj = { a: '1' };
expect(util.defaults(obj, { a: '2', b: '2' })).toBe(obj);
expect(obj).toEqual({
a: '1', b: '2'
});
});
it('should complex defaults', () => {
expect(util.defaults(
{ a: '0', b: '0' },
{ b: '1', c: '1', e: '1' },
{ c: '2', d: '2' }
)).toEqual({
a: '0',
b: '0',
c: '2',
d: '2',
e: '1'
it('should be false for array/object values', () => {
expect(util.isPrimitive({})).toEqual(false);
expect(util.isPrimitive(new Date())).toEqual(false);
expect(util.isPrimitive([])).toEqual(false);
});
it('should be false for blank values', () => {
expect(util.isPrimitive(NaN)).toEqual(false);
expect(util.isPrimitive(null)).toEqual(false);
expect(util.isPrimitive(undefined)).toEqual(false);
});
it('should be true for number', () => {
expect(util.isPrimitive(-1)).toEqual(true);
expect(util.isPrimitive(0)).toEqual(true);
expect(util.isPrimitive(1)).toEqual(true);
});
it('should be true for boolean', () => {
expect(util.isPrimitive(true)).toEqual(true);
expect(util.isPrimitive(false)).toEqual(true);
});
it('should be true for string', () => {
expect(util.isPrimitive('')).toEqual(true);
expect(util.isPrimitive(' ')).toEqual(true);
expect(util.isPrimitive('hi')).toEqual(true);
});
});
describe('isCheckedProperty', () => {
it('should test a=undefined', () => {
expect(util.isCheckedProperty(undefined, undefined)).toBe(true);
expect(util.isCheckedProperty(undefined, null)).toBe(true);
expect(util.isCheckedProperty(undefined, '')).toBe(true);
expect(util.isCheckedProperty(undefined, 'string')).toBe(false);
expect(util.isCheckedProperty(undefined, 0)).toBe(false);
expect(util.isCheckedProperty(undefined, '0')).toBe(false);
expect(util.isCheckedProperty(undefined, 1000)).toBe(false);
expect(util.isCheckedProperty(undefined, '1000')).toBe(false);
expect(util.isCheckedProperty(undefined, -1)).toBe(false);
expect(util.isCheckedProperty(undefined, true)).toBe(false);
expect(util.isCheckedProperty(undefined, false)).toBe(false);
expect(util.isCheckedProperty(undefined, 'true')).toBe(false);
expect(util.isCheckedProperty(undefined, 'false')).toBe(false);
});
it('should test a=null', () => {
expect(util.isCheckedProperty(null, undefined)).toBe(true);
expect(util.isCheckedProperty(null, null)).toBe(true);
expect(util.isCheckedProperty(null, '')).toBe(true);
expect(util.isCheckedProperty(null, 'string')).toBe(false);
expect(util.isCheckedProperty(null, 0)).toBe(false);
expect(util.isCheckedProperty(null, '0')).toBe(false);
expect(util.isCheckedProperty(null, 1000)).toBe(false);
expect(util.isCheckedProperty(null, '1000')).toBe(false);
expect(util.isCheckedProperty(null, -1)).toBe(false);
expect(util.isCheckedProperty(null, true)).toBe(false);
expect(util.isCheckedProperty(null, false)).toBe(false);
expect(util.isCheckedProperty(null, 'true')).toBe(false);
expect(util.isCheckedProperty(null, 'false')).toBe(false);
});
it('should test a=""', () => {
expect(util.isCheckedProperty('', undefined)).toBe(true);
expect(util.isCheckedProperty('', null)).toBe(true);
expect(util.isCheckedProperty('', '')).toBe(true);
expect(util.isCheckedProperty('', 'string')).toBe(false);
expect(util.isCheckedProperty('', 0)).toBe(false);
expect(util.isCheckedProperty('', '0')).toBe(false);
expect(util.isCheckedProperty('', 1000)).toBe(false);
expect(util.isCheckedProperty('', '1000')).toBe(false);
expect(util.isCheckedProperty('', -1)).toBe(false);
expect(util.isCheckedProperty('', true)).toBe(false);
expect(util.isCheckedProperty('', false)).toBe(false);
expect(util.isCheckedProperty('', 'true')).toBe(false);
expect(util.isCheckedProperty('', 'false')).toBe(false);
});
it('should test a=true', () => {
expect(util.isCheckedProperty(true, undefined)).toBe(false);
expect(util.isCheckedProperty(true, null)).toBe(false);
expect(util.isCheckedProperty(true, '')).toBe(false);
expect(util.isCheckedProperty(true, 'string')).toBe(false);
expect(util.isCheckedProperty(true, 0)).toBe(false);
expect(util.isCheckedProperty(true, '0')).toBe(false);
expect(util.isCheckedProperty(true, 1000)).toBe(false);
expect(util.isCheckedProperty(true, '1000')).toBe(false);
expect(util.isCheckedProperty(true, -1)).toBe(false);
expect(util.isCheckedProperty(true, true)).toBe(true);
expect(util.isCheckedProperty(true, false)).toBe(false);
expect(util.isCheckedProperty(true, 'true')).toBe(true);
expect(util.isCheckedProperty(true, 'false')).toBe(false);
});
it('should test a="true"', () => {
expect(util.isCheckedProperty('true', undefined)).toBe(false);
expect(util.isCheckedProperty('true', null)).toBe(false);
expect(util.isCheckedProperty('true', '')).toBe(false);
expect(util.isCheckedProperty('true', 'string')).toBe(false);
expect(util.isCheckedProperty('true', 0)).toBe(false);
expect(util.isCheckedProperty('true', '0')).toBe(false);
expect(util.isCheckedProperty('true', 1000)).toBe(false);
expect(util.isCheckedProperty('true', '1000')).toBe(false);
expect(util.isCheckedProperty('true', -1)).toBe(false);
expect(util.isCheckedProperty('true', true)).toBe(true);
expect(util.isCheckedProperty('true', false)).toBe(false);
expect(util.isCheckedProperty('true', 'true')).toBe(true);
expect(util.isCheckedProperty('true', 'false')).toBe(false);
});
it('should test a=false', () => {
expect(util.isCheckedProperty(false, undefined)).toBe(false);
expect(util.isCheckedProperty(false, null)).toBe(false);
expect(util.isCheckedProperty(false, '')).toBe(false);
expect(util.isCheckedProperty(false, 'string')).toBe(false);
expect(util.isCheckedProperty(false, 0)).toBe(false);
expect(util.isCheckedProperty(false, '0')).toBe(false);
expect(util.isCheckedProperty(false, 1000)).toBe(false);
expect(util.isCheckedProperty(false, '1000')).toBe(false);
expect(util.isCheckedProperty(false, -1)).toBe(false);
expect(util.isCheckedProperty(false, true)).toBe(false);
expect(util.isCheckedProperty(false, false)).toBe(true);
expect(util.isCheckedProperty(false, 'true')).toBe(false);
expect(util.isCheckedProperty(false, 'false')).toBe(true);
});
it('should test a="false"', () => {
expect(util.isCheckedProperty('false', undefined)).toBe(false);
expect(util.isCheckedProperty('false', null)).toBe(false);
expect(util.isCheckedProperty('false', '')).toBe(false);
expect(util.isCheckedProperty('false', 'string')).toBe(false);
expect(util.isCheckedProperty('false', 0)).toBe(false);
expect(util.isCheckedProperty('false', '0')).toBe(false);
expect(util.isCheckedProperty('false', 1000)).toBe(false);
expect(util.isCheckedProperty('false', '1000')).toBe(false);
expect(util.isCheckedProperty('false', -1)).toBe(false);
expect(util.isCheckedProperty('false', true)).toBe(false);
expect(util.isCheckedProperty('false', false)).toBe(true);
expect(util.isCheckedProperty('false', 'true')).toBe(false);
expect(util.isCheckedProperty('false', 'false')).toBe(true);
});
it('should test a=0', () => {
expect(util.isCheckedProperty(0, undefined)).toBe(false);
expect(util.isCheckedProperty(0, null)).toBe(false);
expect(util.isCheckedProperty(0, '')).toBe(false);
expect(util.isCheckedProperty(0, 'string')).toBe(false);
expect(util.isCheckedProperty(0, 0)).toBe(true);
expect(util.isCheckedProperty(0, '0')).toBe(true);
expect(util.isCheckedProperty(0, 1000)).toBe(false);
expect(util.isCheckedProperty(0, '1000')).toBe(false);
expect(util.isCheckedProperty(0, -1)).toBe(false);
expect(util.isCheckedProperty(0, true)).toBe(false);
expect(util.isCheckedProperty(0, false)).toBe(false);
expect(util.isCheckedProperty(0, 'true')).toBe(false);
expect(util.isCheckedProperty(0, 'false')).toBe(false);
});
it('should test a="0"', () => {
expect(util.isCheckedProperty('0', undefined)).toBe(false);
expect(util.isCheckedProperty('0', null)).toBe(false);
expect(util.isCheckedProperty('0', '')).toBe(false);
expect(util.isCheckedProperty('0', 'string')).toBe(false);
expect(util.isCheckedProperty('0', 0)).toBe(true);
expect(util.isCheckedProperty('0', '0')).toBe(true);
expect(util.isCheckedProperty('0', 1000)).toBe(false);
expect(util.isCheckedProperty('0', '1000')).toBe(false);
expect(util.isCheckedProperty('0', -1)).toBe(false);
expect(util.isCheckedProperty('0', true)).toBe(false);
expect(util.isCheckedProperty('0', false)).toBe(false);
expect(util.isCheckedProperty('0', 'true')).toBe(false);
expect(util.isCheckedProperty('0', 'false')).toBe(false);
});
it('should test a=1000', () => {
expect(util.isCheckedProperty(1000, undefined)).toBe(false);
expect(util.isCheckedProperty(1000, null)).toBe(false);
expect(util.isCheckedProperty(1000, '')).toBe(false);
expect(util.isCheckedProperty(1000, 'string')).toBe(false);
expect(util.isCheckedProperty(1000, 0)).toBe(false);
expect(util.isCheckedProperty(1000, '0')).toBe(false);
expect(util.isCheckedProperty(1000, 1000)).toBe(true);
expect(util.isCheckedProperty(1000, '1000')).toBe(true);
expect(util.isCheckedProperty(1000, -1)).toBe(false);
expect(util.isCheckedProperty(1000, true)).toBe(false);
expect(util.isCheckedProperty(1000, false)).toBe(false);
expect(util.isCheckedProperty(1000, 'true')).toBe(false);
expect(util.isCheckedProperty(1000, 'false')).toBe(false);
});
it('should test a="1000"', () => {
expect(util.isCheckedProperty('1000', undefined)).toBe(false);
expect(util.isCheckedProperty('1000', null)).toBe(false);
expect(util.isCheckedProperty('1000', '')).toBe(false);
expect(util.isCheckedProperty('1000', 'string')).toBe(false);
expect(util.isCheckedProperty('1000', 0)).toBe(false);
expect(util.isCheckedProperty('1000', '0')).toBe(false);
expect(util.isCheckedProperty('1000', 1000)).toBe(true);
expect(util.isCheckedProperty('1000', '1000')).toBe(true);
expect(util.isCheckedProperty('1000', -1)).toBe(false);
expect(util.isCheckedProperty('1000', true)).toBe(false);
expect(util.isCheckedProperty('1000', false)).toBe(false);
expect(util.isCheckedProperty('1000', 'true')).toBe(false);
expect(util.isCheckedProperty('1000', 'false')).toBe(false);
});
it('should test a=-1', () => {
expect(util.isCheckedProperty(-1, undefined)).toBe(false);
expect(util.isCheckedProperty(-1, null)).toBe(false);
expect(util.isCheckedProperty(-1, '')).toBe(false);
expect(util.isCheckedProperty(-1, 'string')).toBe(false);
expect(util.isCheckedProperty(-1, 0)).toBe(false);
expect(util.isCheckedProperty(-1, '0')).toBe(false);
expect(util.isCheckedProperty(-1, 1000)).toBe(false);
expect(util.isCheckedProperty(-1, '1000')).toBe(false);
expect(util.isCheckedProperty(-1, -1)).toBe(true);
expect(util.isCheckedProperty(-1, true)).toBe(false);
expect(util.isCheckedProperty(-1, false)).toBe(false);
expect(util.isCheckedProperty(-1, 'true')).toBe(false);
expect(util.isCheckedProperty(-1, 'false')).toBe(false);
});
it('should test a="-1"', () => {
expect(util.isCheckedProperty('-1', undefined)).toBe(false);
expect(util.isCheckedProperty('-1', null)).toBe(false);
expect(util.isCheckedProperty('-1', '')).toBe(false);
expect(util.isCheckedProperty('-1', 'string')).toBe(false);
expect(util.isCheckedProperty('-1', 0)).toBe(false);
expect(util.isCheckedProperty('-1', '0')).toBe(false);
expect(util.isCheckedProperty('-1', 1000)).toBe(false);
expect(util.isCheckedProperty('-1', '1000')).toBe(false);
expect(util.isCheckedProperty('-1', -1)).toBe(true);
expect(util.isCheckedProperty('-1', true)).toBe(false);
expect(util.isCheckedProperty('-1', false)).toBe(false);
expect(util.isCheckedProperty('-1', 'true')).toBe(false);
expect(util.isCheckedProperty('-1', 'false')).toBe(false);
});
it('should test a="string"', () => {
expect(util.isCheckedProperty('string', undefined)).toBe(false);
expect(util.isCheckedProperty('string', null)).toBe(false);
expect(util.isCheckedProperty('string', '')).toBe(false);
expect(util.isCheckedProperty('string', 'string')).toBe(true);
expect(util.isCheckedProperty('string', 'otherstring')).toBe(false);
expect(util.isCheckedProperty('string', 0)).toBe(false);
expect(util.isCheckedProperty('string', '0')).toBe(false);
expect(util.isCheckedProperty('string', 1000)).toBe(false);
expect(util.isCheckedProperty('string', '1000')).toBe(false);
expect(util.isCheckedProperty('string', -1)).toBe(false);
expect(util.isCheckedProperty('string', true)).toBe(false);
expect(util.isCheckedProperty('string', false)).toBe(false);
expect(util.isCheckedProperty('string', 'true')).toBe(false);
expect(util.isCheckedProperty('string', 'false')).toBe(false);
});
});
describe('isTrueProperty', () => {
it('should be true from boolean true', () => {
expect(util.isTrueProperty(true)).toBe(true);
});
it('should be true from string "true"', () => {
expect(util.isTrueProperty('true')).toBe(true);
expect(util.isTrueProperty('TRUE')).toBe(true);
expect(util.isTrueProperty(' true ')).toBe(true);
});
it('should be true from string "on"', () => {
expect(util.isTrueProperty(true)).toBe(true);
});
it('should be true from empty string ""', () => {
expect(util.isTrueProperty('')).toBe(true);
expect(util.isTrueProperty(' ')).toBe(true);
});
it('should be true from number greater than zero', () => {
expect(util.isTrueProperty(1)).toBe(true);
expect(util.isTrueProperty(999)).toBe(true);
});
it('should be false from boolean false', () => {
expect(util.isTrueProperty(false)).toBe(false);
});
it('should be false from string "off"', () => {
expect(util.isTrueProperty(true)).toBe(true);
});
it('should be false from null', () => {
expect(util.isTrueProperty(null)).toBe(false);
});
it('should be false from undefined', () => {
expect(util.isTrueProperty(undefined)).toBe(false);
});
it('should be false from string "false"', () => {
expect(util.isTrueProperty('false')).toBe(false);
expect(util.isTrueProperty(' FALSE ')).toBe(false);
expect(util.isTrueProperty('doesnt actually matter')).toBe(false);
});
});
describe('extend', () => {
it('should extend simple', () => {
var obj = { a: '0', c: '0' };
expect( util.assign(obj, { a: '1', b: '2' }) ).toBe(obj);
expect(obj).toEqual({ a: '1', b: '2', c: '0' });
});
it('should extend complex', () => {
expect(util.assign(
{ a: '0', b: '0' },
{ b: '1', c: '1' },
{ c: '2', d: '2' }
)).toEqual({
a: '0',
b: '1',
c: '2',
d: '2'
});
});
});
describe('defaults', () => {
it('should simple defaults', () => {
var obj = { a: '1' };
expect(util.defaults(obj, { a: '2', b: '2' })).toBe(obj);
expect(obj).toEqual({
a: '1', b: '2'
});
});
it('should complex defaults', () => {
expect(util.defaults(
{ a: '0', b: '0' },
{ b: '1', c: '1', e: '1' },
{ c: '2', d: '2' }
)).toEqual({
a: '0',
b: '0',
c: '2',
d: '2',
e: '1'
});
});
});
});

View File

@ -148,12 +148,21 @@ export const isCheckedProperty = function(a: any, b: any): boolean {
* @private
*/
export function reorderArray(array: any[], indexes: {from: number, to: number}): any[] {
let element = array[indexes.from];
const element = array[indexes.from];
array.splice(indexes.from, 1);
array.splice(indexes.to, 0, element);
return array;
}
/**
* @private
*/
export function removeArrayItem(array: any[], item: any) {
const index = array.indexOf(item);
return !!~index && !!array.splice(index, 1);
}
/**
* @private
*/