From aa30faf86333f8e2065d08946b05ce4529b1f1ce Mon Sep 17 00:00:00 2001 From: Andy Joslin Date: Sat, 15 Mar 2014 18:57:10 -0600 Subject: [PATCH] fix(ionTab): stop browser-tooltip from appearing due to `title` attr Closes #804 --- js/ext/angular/src/directive/ionicTabBar.js | 3 +++ js/ext/angular/test/directive/ionicTabBar.unit.js | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/js/ext/angular/src/directive/ionicTabBar.js b/js/ext/angular/src/directive/ionicTabBar.js index d950cbc7e0..fb186eff0d 100644 --- a/js/ext/angular/src/directive/ionicTabBar.js +++ b/js/ext/angular/src/directive/ionicTabBar.js @@ -365,6 +365,9 @@ function($rootScope, $animate, $ionicBind, $compile, $ionicViewService) { var tabsCtrl = ctrls[0], tabCtrl = ctrls[1]; + //Remove title attribute so browser-tooltip does not apear + $element[0].removeAttribute('title'); + $scope.selectTab = function(e) { e.preventDefault(); tabsCtrl.select(tabCtrl.$scope, true); diff --git a/js/ext/angular/test/directive/ionicTabBar.unit.js b/js/ext/angular/test/directive/ionicTabBar.unit.js index 6eb8ae802c..48523b0b54 100644 --- a/js/ext/angular/test/directive/ionicTabBar.unit.js +++ b/js/ext/angular/test/directive/ionicTabBar.unit.js @@ -294,7 +294,9 @@ describe('tabs', function() { it('should compile a with all of the relevant attrs', function() { setup('title=1 icon-on=2 icon-off=3 badge=4 badge-style=5 ng-click=6'); var navItem = angular.element(tabsEl[0].querySelector('.tab-item')); - expect(navItem.attr('title')).toEqual('1'); + //Use .scope for title because we remove title attr + //(for dom-tooltip not to appear) + expect(navItem.scope().title).toEqual('1'); expect(navItem.attr('icon-on')).toEqual('2'); expect(navItem.attr('icon-off')).toEqual('3'); expect(navItem.attr('badge')).toEqual('4'); @@ -401,6 +403,12 @@ describe('tabs', function() { return element; } + it('should remove title attribute', function() { + var el = setup('title="something"'); + expect(el[0].hasAttribute('title')).toBe(false); + expect(el.isolateScope().title).toBe('something'); + }); + // These next two are REALLY specific unit tests, // but also are really really vital pieces of code it('.isTabActive should be correct', function() {