summaryrefslogtreecommitdiffstats
path: root/js/vendor/angular-ui/modules/directives/map/test/mapSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/angular-ui/modules/directives/map/test/mapSpec.js')
-rw-r--r--js/vendor/angular-ui/modules/directives/map/test/mapSpec.js102
1 files changed, 102 insertions, 0 deletions
diff --git a/js/vendor/angular-ui/modules/directives/map/test/mapSpec.js b/js/vendor/angular-ui/modules/directives/map/test/mapSpec.js
new file mode 100644
index 000000000..ec2b619d5
--- /dev/null
+++ b/js/vendor/angular-ui/modules/directives/map/test/mapSpec.js
@@ -0,0 +1,102 @@
+xdescribe('uiMap', function () {
+ var scope, $rootScope, $compile;
+
+ beforeEach(module('ui.directives'));
+ beforeEach(inject(function (_$compile_, _$rootScope_) {
+ $rootScope = _$rootScope_;
+ $compile = _$compile_;
+ }));
+
+ function createMap(options, events) {
+ scope.gmapOptions = options || {};
+ scope.gmapEvents = events || {};
+ $compile("<div ui-map='gmap' ui-options='gmapOptions'" +
+ "' ui-event='gmapEvents'></div>")(scope);
+ }
+
+ function createWindow(options, events, inner) {
+ scope.gOptions = options || {};
+ scope.gEvents = events || {};
+ inner = inner || angular.element('');
+ var elm = angular.element("<div ui-map-info-window='ginfo' " +
+ "ui-options='gOptions' ui-event='gEvents'></div>");
+ elm.append(inner);
+ $compile(elm)(scope);
+ }
+
+ describe('test', function () {
+ beforeEach(function () {
+ scope = $rootScope.$new();
+ });
+
+ it('should bind google map object to scope', function () {
+ createMap();
+ expect(scope.gmap).toBeTruthy();
+ });
+
+ it('should create google map with given options', function () {
+ var center = new google.maps.LatLng(40, 40);
+ createMap({center: center});
+ expect(scope.gmap.getCenter()).toBe(center);
+ });
+
+ it('should pass events to the element as "map-eventname"', function () {
+ scope.zoomy = false;
+ scope.county = 0;
+ createMap({}, {
+ 'map-zoom_changed': 'zoomy = true',
+ 'map-dblclick map-dragend': 'county = county + 1'
+ });
+ google.maps.event.trigger(scope.gmap, 'zoom_changed');
+ expect(scope.zoomy).toBeTruthy();
+ google.maps.event.trigger(scope.gmap, 'dblclick');
+ expect(scope.county).toBe(1);
+ google.maps.event.trigger(scope.gmap, 'dragend');
+ expect(scope.county).toBe(2);
+ });
+ });
+
+ describe('test infoWindow', function () {
+ beforeEach(function () {
+ scope = $rootScope.$new();
+ });
+
+ it('should bind info window to scope', function () {
+ createWindow();
+ expect(scope.ginfo).toBeTruthy();
+ });
+
+ it('should create info window with given options & content', function () {
+ var content = $('<h1>Hi</h1>');
+ createWindow({ zIndex: 5 }, {}, content);
+ expect(scope.ginfo.getZIndex()).toBe(5);
+ expect(scope.ginfo.getContent().innerHTML)
+ .toBe($('<div>').append(content).html());
+ });
+
+ it('should $compile content and recognize scope changes', function () {
+ var inner = $('<input ng-model="myVal">');
+ createWindow({}, {}, inner);
+ createMap();
+ scope.$apply(function () {
+ scope.myVal = 'initial';
+ });
+ scope.ginfo.open(scope.gmap, scope.gmap.getCenter());
+ expect(inner.val()).toBe('initial');
+ scope.$apply(function () {
+ scope.myVal = 'final';
+ });
+ expect(inner.val()).toBe('final');
+ });
+
+ it('should recognize infowindow events in ui-event as "map-eventname"', function () {
+ createWindow({}, {
+ 'map-closeclick': 'closed = true'
+ });
+ createMap();
+ google.maps.event.trigger(scope.ginfo, 'closeclick');
+ expect(scope.closed).toBe(true);
+ });
+ });
+
+}); \ No newline at end of file