aboutsummaryrefslogtreecommitdiffstats
path: root/test/helpers/privateMocksSpec.js
blob: d5a1e188ea57b7fa8f7db471ee4b412d3793321b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
describe('private mocks', function() {
  describe('createMockStyleSheet', function() {

    it('should allow custom styles to be created and removed when the stylesheet is destroyed',
      inject(function($compile, $document, $window, $rootElement, $rootScope) {

      var doc = $document[0];
      var count = doc.styleSheets.length;
      var stylesheet = createMockStyleSheet($document, $window);
      expect(doc.styleSheets.length).toBe(count + 1);

      angular.element(doc.body).append($rootElement);

      var elm = $compile('<div class="padded">...</div>')($rootScope);
      $rootElement.append(elm);

      expect(getStyle(elm, 'paddingTop')).toBe('0px');

      stylesheet.addRule('.padded', 'padding-top:2px');

      expect(getStyle(elm, 'paddingTop')).toBe('2px');

      stylesheet.destroy();

      expect(getStyle(elm, 'paddingTop')).toBe('0px');

      function getStyle(element, key) {
        var node = element[0];
        return node.currentStyle ?
          node.currentStyle[key] :
          $window.getComputedStyle(node)[key];
      };
    }));

  });
});