diff --git a/src/tooltip/test/tooltip2.spec.js b/src/tooltip/test/tooltip2.spec.js index 98f2a93808..a7ed5005f9 100644 --- a/src/tooltip/test/tooltip2.spec.js +++ b/src/tooltip/test/tooltip2.spec.js @@ -4,6 +4,9 @@ describe('tooltip directive', function () { beforeEach(module('ui.bootstrap.tooltip')); beforeEach(module('template/tooltip/tooltip-popup.html')); + beforeEach(module('template/tooltip/tooltip-template-popup.html')); + beforeEach(module('template/tooltip/tooltip-html-popup.html')); + beforeEach(module('template/tooltip/tooltip-html-unsafe-popup.html')); beforeEach(inject(function (_$rootScope_, _$compile_, _$document_, _$timeout_) { $rootScope = _$rootScope_; $compile = _$compile_; @@ -95,34 +98,55 @@ describe('tooltip directive', function () { describe('option by option', function () { - describe('placement', function () { + var tooltipTypes = { + 'tooltip': 'tooltip="tooltip text"', + 'tooltip-html': 'tooltip-html="tooltipSafeHtml"', + 'tooltip-html-unsafe': 'tooltip-html-unsafe="tooltip text"', + 'tooltip-template': 'tooltip-template="\'tooltipTextUrl\'"' + }; - it('can specify an alternative, valid placement', function () { - var fragment = compileTooltip('Trigger here'); - fragment.find('span').trigger( 'mouseenter' ); + beforeEach(inject(function ($sce, $templateCache) { + $rootScope.tooltipText = 'tooltip text'; + $rootScope.tooltipSafeHtml = $sce.trustAsHtml('tooltip text'); + $templateCache.put('tooltipTextUrl', [200, 'tooltip text', {}]); + })); - var ttipElement = fragment.find('div.tooltip'); - expect(fragment).toHaveOpenTooltips(); - expect(ttipElement).toHaveClass('left'); + angular.forEach(tooltipTypes, function (html, key) { - closeTooltip(fragment.find('span')); - expect(fragment).not.toHaveOpenTooltips(); - }); + describe(key, function () { - }); + describe('placement', function () { + + it('can specify an alternative, valid placement', function () { + var fragment = compileTooltip('Trigger here'); + fragment.find('span').trigger( 'mouseenter' ); + + var ttipElement = fragment.find('div.tooltip'); + expect(fragment).toHaveOpenTooltips(); + expect(ttipElement).toHaveClass('left'); + + closeTooltip(fragment.find('span')); + expect(fragment).not.toHaveOpenTooltips(); + }); + + }); + + describe('class', function () { + + it('can specify a custom class', function () { + var fragment = compileTooltip('Trigger here'); + fragment.find('span').trigger( 'mouseenter' ); - describe('class', function () { + var ttipElement = fragment.find('div.tooltip'); + expect(fragment).toHaveOpenTooltips(); + expect(ttipElement).toHaveClass('custom'); - it('can specify a custom class', function () { - var fragment = compileTooltip('Trigger here'); - fragment.find('span').trigger( 'mouseenter' ); + closeTooltip(fragment.find('span')); + expect(fragment).not.toHaveOpenTooltips(); + }); - var ttipElement = fragment.find('div.tooltip'); - expect(fragment).toHaveOpenTooltips(); - expect(ttipElement).toHaveClass('custom'); + }); - closeTooltip(fragment.find('span')); - expect(fragment).not.toHaveOpenTooltips(); }); }); diff --git a/src/tooltip/tooltip.js b/src/tooltip/tooltip.js index 3f0522a8bd..9c6db85413 100644 --- a/src/tooltip/tooltip.js +++ b/src/tooltip/tooltip.js @@ -478,7 +478,7 @@ function ($animate , $sce , $compile , $templateRequest) { return { restrict: 'EA', replace: true, - scope: { title: '@', contentExp: '&', placement: '@', animation: '&', isOpen: '&', + scope: { contentExp: '&', placement: '@', popupClass: '@', animation: '&', isOpen: '&', originScope: '&' }, templateUrl: 'template/tooltip/tooltip-template-popup.html' }; diff --git a/template/tooltip/tooltip-popup.html b/template/tooltip/tooltip-popup.html index 9b62afe1bb..f43b9adad3 100644 --- a/template/tooltip/tooltip-popup.html +++ b/template/tooltip/tooltip-popup.html @@ -1,4 +1,7 @@ -
+