@spalger/kibana
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
79 lines (59 loc) • 2.18 kB
JavaScript
var angular = require('angular');
var expect = require('expect.js');
var ngMock = require('ngMock');
require('ui/directives/validate_ip');
describe('Validate IP directive', function () {
var $compile;
var $rootScope;
var html = '<input type="text" ng-model="value" validate-ip />';
beforeEach(ngMock.module('kibana'));
beforeEach(ngMock.inject(function (_$compile_, _$rootScope_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
}));
it('should allow empty input', function () {
var element = $compile(html)($rootScope);
$rootScope.value = '';
$rootScope.$digest();
expect(element.hasClass('ng-valid')).to.be.ok();
$rootScope.value = null;
$rootScope.$digest();
expect(element.hasClass('ng-valid')).to.be.ok();
$rootScope.value = undefined;
$rootScope.$digest();
expect(element.hasClass('ng-valid')).to.be.ok();
});
it('should allow valid IP addresses', function () {
var element = $compile(html)($rootScope);
$rootScope.value = '0.0.0.0';
$rootScope.$digest();
expect(element.hasClass('ng-valid')).to.be.ok();
$rootScope.value = '0.0.0.1';
$rootScope.$digest();
expect(element.hasClass('ng-valid')).to.be.ok();
$rootScope.value = '126.45.211.34';
$rootScope.$digest();
expect(element.hasClass('ng-valid')).to.be.ok();
$rootScope.value = '255.255.255.255';
$rootScope.$digest();
expect(element.hasClass('ng-valid')).to.be.ok();
});
it('should disallow invalid IP addresses', function () {
var element = $compile(html)($rootScope);
$rootScope.value = 'hello, world';
$rootScope.$digest();
expect(element.hasClass('ng-invalid')).to.be.ok();
$rootScope.value = '0.0.0';
$rootScope.$digest();
expect(element.hasClass('ng-invalid')).to.be.ok();
$rootScope.value = '256.0.0.0';
$rootScope.$digest();
expect(element.hasClass('ng-invalid')).to.be.ok();
$rootScope.value = '-1.0.0.0';
$rootScope.$digest();
expect(element.hasClass('ng-invalid')).to.be.ok();
$rootScope.value = Number.MAX_VALUE;
$rootScope.$digest();
expect(element.hasClass('ng-invalid')).to.be.ok();
});
});