webfontloader 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. data/CHANGELOG +4 -0
  2. data/lib/webfontloader.rb +1 -1
  3. data/spec/ascender/ascenderscript_spec.js +24 -1
  4. data/spec/core/eventdispatcher_spec.js +15 -11
  5. data/spec/core/font_spec.js +83 -192
  6. data/spec/core/fontruler_spec.js +7 -4
  7. data/spec/core/fontwatcher_spec.js +78 -61
  8. data/spec/core/fontwatchrunner_spec.js +85 -33
  9. data/spec/core/webfont_spec.js +224 -0
  10. data/spec/custom/customcss_spec.js +5 -2
  11. data/spec/deps.js +13 -13
  12. data/spec/fontdeck/fontdeckscript_spec.js +4 -6
  13. data/spec/fonts/sourcesansc.css +1 -0
  14. data/spec/fonts/sourcesanscbold.css +1 -0
  15. data/spec/fonts/sourcesanscbold.otf +0 -0
  16. data/spec/google/fontapiparser_spec.js +58 -178
  17. data/spec/google/googlefontapi_spec.js +14 -42
  18. data/spec/google/lastresortwebkitfontwatchrunner_spec.js +12 -10
  19. data/spec/index.html +5 -3
  20. data/spec/monotype/monotypescript_spec.js +3 -2
  21. data/spec/typekit/typekitscript_spec.js +9 -4
  22. data/src/ascender/ascender_script.js +43 -26
  23. data/src/core/eventdispatcher.js +23 -23
  24. data/src/core/font.js +80 -99
  25. data/src/core/fontmoduleloader.js +1 -1
  26. data/src/core/fontruler.js +10 -20
  27. data/src/core/fontwatcher.js +24 -46
  28. data/src/core/fontwatchrunner.js +13 -13
  29. data/src/core/initialize.js +0 -10
  30. data/src/core/webfont.js +134 -0
  31. data/src/custom/customcss.js +14 -10
  32. data/src/fontdeck/fontdeck_script.js +7 -9
  33. data/src/google/fontapiparser.js +11 -15
  34. data/src/google/googlefontapi.js +1 -2
  35. data/src/google/lastresortwebkitfontwatchrunner.js +15 -13
  36. data/src/modules.yml +2 -3
  37. data/src/monotype/monotype_script.js +9 -8
  38. data/src/typekit/typekit_script.js +17 -7
  39. data/webfontloader.gemspec +7 -6
  40. metadata +9 -8
  41. data/spec/core/cssfontfamilyname_spec.js +0 -38
  42. data/spec/core/fontvariationdescription_spec.js +0 -67
  43. data/src/core/cssfontfamilyname.js +0 -33
  44. data/src/core/fontvariationdescription.js +0 -140
@@ -0,0 +1,224 @@
1
+ describe('WebFont', function () {
2
+ var WebFont = webfont.WebFont,
3
+ UserAgent = webfont.UserAgent,
4
+ BrowserInfo = webfont.BrowserInfo,
5
+ Font = webfont.Font,
6
+ FontModuleLoader = webfont.FontModuleLoader,
7
+ fontModuleLoader = null,
8
+ userAgent = null;
9
+
10
+ beforeEach(function () {
11
+ userAgent = new UserAgent('Firefox', '3.6', 'Gecko', '1.9.2', 'Macintosh', '10.6', undefined, new BrowserInfo(true, false, false));
12
+ fontModuleLoader = new FontModuleLoader();
13
+ });
14
+
15
+ describe('font load', function () {
16
+ var font = null,
17
+ testModule = null;
18
+
19
+ beforeEach(function () {
20
+ font = new WebFont(window, fontModuleLoader, userAgent);
21
+ font.addModule('test', function (conf, domHelper) {
22
+ testModule = new function () {
23
+ this.conf = conf;
24
+ this.domHelper = domHelper;
25
+ this.loadCalled = true;
26
+ this.supportUserAgentCalled = false;
27
+ };
28
+
29
+ testModule.load = function (onReady) {
30
+ this.loadCalled = true;
31
+ onReady([]);
32
+ };
33
+
34
+ testModule.supportUserAgent = function (ua, support) {
35
+ this.supportUserAgentCalled = true;
36
+ support(true);
37
+ };
38
+
39
+ return testModule;
40
+ });
41
+ });
42
+
43
+ it('should not start loading', function () {
44
+ expect(font.moduleFailedLoading_).toEqual(0);
45
+ expect(font.moduleLoading_).toEqual(0);
46
+ });
47
+
48
+ it('should fail to load a module', function () {
49
+ var loading = jasmine.createSpy('loading');
50
+
51
+ font.load({
52
+ test: {
53
+ somedata: 'in french a cow says meuh'
54
+ },
55
+ loading: loading
56
+ });
57
+
58
+ expect(font.moduleFailedLoading_).toEqual(1);
59
+ expect(font.moduleLoading_).toEqual(0);
60
+ expect(testModule).not.toBeNull();
61
+
62
+ expect(testModule.conf).not.toBeUndefined();
63
+ expect(testModule.conf).not.toBeNull();
64
+
65
+ expect(testModule.domHelper).not.toBeNull();
66
+ expect(testModule.domHelper).not.toBeUndefined();
67
+
68
+ expect(testModule.domHelper.getMainWindow()).toEqual(window);
69
+ expect(testModule.domHelper.getLoadWindow()).toEqual(window);
70
+
71
+ expect(testModule.conf.somedata).toEqual('in french a cow says meuh');
72
+ expect(testModule.loadCalled).toBe(true);
73
+ expect(testModule.supportUserAgentCalled).toBe(true);
74
+ expect(loading).toHaveBeenCalled();
75
+ });
76
+ });
77
+
78
+ describe('font load with context', function () {
79
+ var font = null,
80
+ testModule = null,
81
+ fakeMainWindow = {};
82
+
83
+ beforeEach(function () {
84
+ font = new WebFont(fakeMainWindow, fontModuleLoader, userAgent);
85
+ font.addModule('test', function (conf, domHelper) {
86
+ testModule = new function () {
87
+ this.domHelper = domHelper;
88
+ };
89
+ testModule.load = function () {};
90
+ testModule.supportUserAgent = function (ua, support) {
91
+ support(true);
92
+ };
93
+
94
+ return testModule;
95
+ });
96
+ });
97
+
98
+ it('should load with the correct context', function () {
99
+ font.load({
100
+ test: {
101
+ somedata: 'in french a cow says meuh'
102
+ },
103
+ context: window
104
+ });
105
+
106
+ expect(testModule.domHelper).not.toBeNull();
107
+ expect(testModule.domHelper).not.toBeUndefined();
108
+
109
+ expect(testModule.domHelper.getMainWindow()).toEqual(fakeMainWindow);
110
+ expect(testModule.domHelper.getLoadWindow()).toEqual(window);
111
+ });
112
+ });
113
+
114
+ describe('module failed to provide families and descriptions because it did not initialize properly', function () {
115
+ var webfont = null,
116
+ testModule = null,
117
+ font = null,
118
+ inactive = jasmine.createSpy('inactive'),
119
+ active = jasmine.createSpy('active');
120
+
121
+ beforeEach(function () {
122
+ font = new Font('Font1');
123
+ jasmine.Clock.useMock();
124
+ webfont = new WebFont(window, fontModuleLoader, new UserAgent('Firefox', '3.6', 'Gecko', '1.9.2', 'Macintosh', '10.6', undefined, new BrowserInfo(true, false)));
125
+ webfont.addModule('test', function (conf, domHelper) {
126
+ testModule = new function () {
127
+ this.conf = conf;
128
+ this.fonts = [];
129
+ };
130
+
131
+ testModule.getFontWatchRunnerCtor = function () {
132
+ function FakeFontWatchRunner(activeCallback, inactiveCallback) {
133
+ this.inactive = inactiveCallback;
134
+ this.active = activeCallback;
135
+ };
136
+
137
+ FakeFontWatchRunner.prototype.start = function () {
138
+ if (conf.id) {
139
+ this.active(font);
140
+ } else {
141
+ this.inactive(font);
142
+ }
143
+ };
144
+
145
+ return FakeFontWatchRunner;
146
+ };
147
+
148
+ testModule.supportUserAgent = function (userAgent, support) {
149
+ if (conf.id) {
150
+ // The monotype module only initializes font
151
+ // and description if there is a kit id.
152
+ this.fonts = [font];
153
+ }
154
+ support(true);
155
+ };
156
+ testModule.load = function (onReady) {
157
+ onReady(this.fonts);
158
+ };
159
+
160
+ return testModule;
161
+ });
162
+ });
163
+
164
+ it('should load with a project id', function () {
165
+ webfont.load({
166
+ test: {
167
+ id: 'hello world'
168
+ },
169
+ inactive: inactive,
170
+ active: active
171
+ });
172
+
173
+ jasmine.Clock.tick(1);
174
+
175
+ expect(testModule).not.toBeNull();
176
+ expect(active).toHaveBeenCalled();
177
+ });
178
+
179
+ it('should not load without a project id', function () {
180
+ webfont.load({
181
+ test: {
182
+ },
183
+ inactive: inactive,
184
+ active: active
185
+ });
186
+
187
+ jasmine.Clock.tick(1);
188
+
189
+ expect(testModule).not.toBeNull();
190
+ expect(inactive).toHaveBeenCalled();
191
+ });
192
+ });
193
+
194
+ describe('font inactive', function () {
195
+ var font = null,
196
+ testModule = null;
197
+
198
+ beforeEach(function () {
199
+ font = new WebFont(window, fontModuleLoader, new UserAgent('Firefox', '3.6', 'Gecko', '1.9.2', 'Macintosh', '10.6', undefined, new BrowserInfo(false, false, false)));
200
+ font.addModule('test', function (conf, domHelper) {
201
+ testModule = new function () {
202
+ this.conf = conf;
203
+ this.loadCalled = false;
204
+ };
205
+ testModule.load = function () {};
206
+ return testModule;
207
+ });
208
+ });
209
+
210
+ it('should load with the correct context', function () {
211
+ var inactive = jasmine.createSpy('inactive');
212
+
213
+ font.load({
214
+ test: {
215
+ somedata: 'in french a cow says meuh'
216
+ },
217
+ inactive: inactive
218
+ });
219
+
220
+ expect(testModule).toBeNull()
221
+ expect(inactive).toHaveBeenCalled();
222
+ });
223
+ });
224
+ });
@@ -1,5 +1,6 @@
1
1
  describe('CustomCss', function () {
2
- var CustomCss = webfont.CustomCss;
2
+ var CustomCss = webfont.CustomCss,
3
+ FontFamily = webfont.FontFamily;
3
4
 
4
5
  describe('insert links correctly', function () {
5
6
  var fakeDomHelper = null,
@@ -30,7 +31,9 @@ describe('CustomCss', function () {
30
31
  it('should have loaded the families correctly', function () {
31
32
  expect(load.callCount).toEqual(1);
32
33
  expect(load.calls[0].args[0].length).toEqual(3);
33
- expect(load.calls[0].args[0]).toEqual(['Font1', 'Font2', 'Font3']);
34
+ expect(load.calls[0].args[0][0].getName()).toEqual('Font1');
35
+ expect(load.calls[0].args[0][1].getName()).toEqual('Font2');
36
+ expect(load.calls[0].args[0][2].getName()).toEqual('Font3');
34
37
  });
35
38
  });
36
39
  });
data/spec/deps.js CHANGED
@@ -1,26 +1,26 @@
1
1
  // This file was autogenerated by calcdeps.js
2
- goog.addDependency("../../src/ascender/ascender_script.js", ["webfont.AscenderScript"], []);
2
+ goog.addDependency("../../src/ascender/ascender_script.js", ["webfont.AscenderScript"], ["webfont.Font"]);
3
3
  goog.addDependency("../../src/async_load.js", [], []);
4
4
  goog.addDependency("../../src/closure.js", [], []);
5
5
  goog.addDependency("../../src/core/browserinfo.js", ["webfont.BrowserInfo"], []);
6
6
  goog.addDependency("../../src/core/cssclassname.js", ["webfont.CssClassName"], []);
7
- goog.addDependency("../../src/core/cssfontfamilyname.js", ["webfont.CssFontFamilyName"], []);
8
7
  goog.addDependency("../../src/core/domhelper.js", ["webfont.DomHelper"], []);
9
8
  goog.addDependency("../../src/core/eventdispatcher.js", ["webfont.EventDispatcher"], ["webfont.CssClassName"]);
10
- goog.addDependency("../../src/core/font.js", ["webfont.WebFont"], ["webfont.DomHelper","webfont.EventDispatcher","webfont.FontWatcher"]);
11
- goog.addDependency("../../src/core/fontmoduleloader.js", ["webfont.FontModuleLoader"], []);
12
- goog.addDependency("../../src/core/fontruler.js", ["webfont.FontRuler"], ["webfont.CssFontFamilyName","webfont.FontVariationDescription"]);
13
- goog.addDependency("../../src/core/fontvariationdescription.js", ["webfont.FontVariationDescription"], []);
9
+ goog.addDependency("../../src/core/font.js", ["webfont.Font"], []);
10
+ goog.addDependency("../../src/core/fontmoduleloader.js", ["webfont.FontModuleLoader","webfont.FontModule","webfont.FontModuleFactory"], []);
11
+ goog.addDependency("../../src/core/fontruler.js", ["webfont.FontRuler"], []);
14
12
  goog.addDependency("../../src/core/fontwatcher.js", ["webfont.FontWatcher"], ["webfont.FontWatchRunner"]);
15
- goog.addDependency("../../src/core/fontwatchrunner.js", ["webfont.FontWatchRunner"], ["webfont.FontRuler"]);
13
+ goog.addDependency("../../src/core/fontwatchrunner.js", ["webfont.FontWatchRunner"], ["webfont.Font","webfont.FontRuler"]);
16
14
  goog.addDependency("../../src/core/initialize.js", ["webfont"], ["webfont.UserAgentParser","webfont.FontModuleLoader","webfont.WebFont"]);
15
+ goog.addDependency("../../src/core/namespace.js", [], []);
17
16
  goog.addDependency("../../src/core/useragent.js", ["webfont.UserAgent"], []);
18
17
  goog.addDependency("../../src/core/useragentparser.js", ["webfont.UserAgentParser"], ["webfont.BrowserInfo","webfont.UserAgent"]);
19
- goog.addDependency("../../src/custom/customcss.js", ["webfont.CustomCss"], []);
20
- goog.addDependency("../../src/fontdeck/fontdeck_script.js", ["webfont.FontdeckScript"], ["webfont.FontVariationDescription"]);
21
- goog.addDependency("../../src/google/fontapiparser.js", ["webfont.FontApiParser"], ["webfont.FontVariationDescription"]);
18
+ goog.addDependency("../../src/core/webfont.js", ["webfont.WebFont"], ["webfont.DomHelper","webfont.EventDispatcher","webfont.FontWatcher"]);
19
+ goog.addDependency("../../src/custom/customcss.js", ["webfont.CustomCss"], ["webfont.Font"]);
20
+ goog.addDependency("../../src/fontdeck/fontdeck_script.js", ["webfont.FontdeckScript"], ["webfont.Font"]);
21
+ goog.addDependency("../../src/google/fontapiparser.js", ["webfont.FontApiParser"], ["webfont.Font"]);
22
22
  goog.addDependency("../../src/google/fontapiurlbuilder.js", ["webfont.FontApiUrlBuilder"], []);
23
23
  goog.addDependency("../../src/google/googlefontapi.js", ["webfont.GoogleFontApi"], ["webfont.FontApiUrlBuilder","webfont.FontApiParser","webfont.FontWatchRunner","webfont.LastResortWebKitFontWatchRunner"]);
24
- goog.addDependency("../../src/google/lastresortwebkitfontwatchrunner.js", ["webfont.LastResortWebKitFontWatchRunner"], ["webfont.FontRuler"]);
25
- goog.addDependency("../../src/monotype/monotype_script.js", ["webfont.MonotypeScript"], []);
26
- goog.addDependency("../../src/typekit/typekit_script.js", ["webfont.TypekitScript"], []);
24
+ goog.addDependency("../../src/google/lastresortwebkitfontwatchrunner.js", ["webfont.LastResortWebKitFontWatchRunner"], ["webfont.Font","webfont.FontRuler"]);
25
+ goog.addDependency("../../src/monotype/monotype_script.js", ["webfont.MonotypeScript"], ["webfont.Font"]);
26
+ goog.addDependency("../../src/typekit/typekit_script.js", ["webfont.TypekitScript"], ["webfont.Font"]);
@@ -1,5 +1,6 @@
1
1
  describe('FontdeckScript', function () {
2
- var FontdeckScript = webfont.FontdeckScript;
2
+ var FontdeckScript = webfont.FontdeckScript,
3
+ Font = webfont.Font;
3
4
 
4
5
  var configuration = {
5
6
  id: '2282'
@@ -83,9 +84,7 @@ describe('FontdeckScript', function () {
83
84
  it('should load correctly after calling the callback', function () {
84
85
  global.__webfontfontdeckmodule__['2282'](true, apiResponse);
85
86
 
86
- expect(fontdeck.fontFamilies_).toEqual([apiResponse.fonts[0].name, apiResponse.fonts[1].name]);
87
- expect(fontdeck.fontVariations_[apiResponse.fonts[0].name]).toEqual(['n4']);
88
- expect(fontdeck.fontVariations_[apiResponse.fonts[1].name]).toEqual(['i7']);
87
+ expect(fontdeck.fonts_).toEqual([new Font(apiResponse.fonts[0].name), new Font(apiResponse.fonts[1].name, 'i7')]);
89
88
 
90
89
  expect(support).toHaveBeenCalled();
91
90
  });
@@ -103,8 +102,7 @@ describe('FontdeckScript', function () {
103
102
  });
104
103
 
105
104
  it('should not have loaded any fonts', function () {
106
- expect(fontdeck.fontFamilies_).toEqual([]);
107
- expect(fontdeck.fontVariations_).toEqual([]);
105
+ expect(fontdeck.fonts_).toEqual([]);
108
106
  expect(support).toHaveBeenCalled();
109
107
  });
110
108
  });
@@ -0,0 +1 @@
1
+ @font-face{font-family:SourceSansC;src:url(sourcesans.eot?#iefix) format('embedded-opentype'),url(sourcesans.woff) format('woff'),url(sourcesans.otf) format('opentype'),url(sourcesans.ttf) format('truetype'),url(sourcesans.svg#source_sans_proregular) format('svg');font-weight:normal;font-style:normal;}
@@ -0,0 +1 @@
1
+ @font-face{font-family:SourceSansC;src:url(sourcesanscbold.otf) format('opentype');font-weight:bold;font-style:normal;}
Binary file
@@ -1,5 +1,6 @@
1
1
  describe('FontApiParser', function () {
2
- var FontApiParser = webfont.FontApiParser;
2
+ var FontApiParser = webfont.FontApiParser,
3
+ Font = webfont.Font;
3
4
 
4
5
  describe('parsed values are coherent', function () {
5
6
  var parser = null;
@@ -9,57 +10,23 @@ describe('FontApiParser', function () {
9
10
  parser.parse();
10
11
  });
11
12
 
12
- it('should parse families correctly', function () {
13
- var fontFamilies = parser.getFontFamilies();
14
-
15
- expect(fontFamilies.length).toEqual(6);
16
- expect(fontFamilies).toEqual([
17
- 'Tangerine',
18
- 'Droid Serif',
19
- 'Yanone Kaffeesatz',
20
- 'Cantarell',
21
- 'Exo',
22
- 'Lobster'
13
+ it('should parse fonts correctly', function () {
14
+ var fonts = parser.getFonts();
15
+
16
+ expect(fonts.length).toEqual(10);
17
+ expect(fonts).toEqual([
18
+ new Font('Tangerine', 'n4'),
19
+ new Font('Droid Serif', 'i7'),
20
+ new Font('Yanone Kaffeesatz', 'n2'),
21
+ new Font('Yanone Kaffeesatz', 'n3'),
22
+ new Font('Yanone Kaffeesatz', 'n4'),
23
+ new Font('Yanone Kaffeesatz', 'n7'),
24
+ new Font('Cantarell', 'i4'),
25
+ new Font('Cantarell', 'n7'),
26
+ new Font('Exo', 'i1'),
27
+ new Font('Lobster', 'n2')
23
28
  ]);
24
29
  });
25
-
26
- it('should parse variations correctly', function () {
27
- var variations = parser.getVariations();
28
-
29
- var tangerine = variations['Tangerine'];
30
- expect(tangerine).not.toBeNull();
31
- expect(tangerine.length).toEqual(1);
32
- expect(tangerine[0]).toEqual('n4');
33
-
34
- var droidSerif = variations['Droid Serif'];
35
- expect(droidSerif).not.toBeNull();
36
- expect(droidSerif.length).toEqual(1);
37
- expect(droidSerif[0]).toEqual('i7');
38
-
39
- var yanoneKaffeesatz = variations['Yanone Kaffeesatz'];
40
- expect(yanoneKaffeesatz).not.toBeNull();
41
- expect(yanoneKaffeesatz.length).toEqual(4);
42
- expect(yanoneKaffeesatz[0]).toEqual('n2');
43
- expect(yanoneKaffeesatz[1]).toEqual('n3');
44
- expect(yanoneKaffeesatz[2]).toEqual('n4');
45
- expect(yanoneKaffeesatz[3]).toEqual('n7');
46
-
47
- var cantarell = variations['Cantarell'];
48
- expect(cantarell).not.toBeNull();
49
- expect(cantarell.length).toEqual(2);
50
- expect(cantarell[0]).toEqual('i4');
51
- expect(cantarell[1]).toEqual('n7');
52
-
53
- var exo = variations['Exo'];
54
- expect(exo).not.toBeNull();
55
- expect(exo.length).toEqual(1);
56
- expect(exo[0]).toEqual('i1');
57
-
58
- var lobster = variations['Lobster'];
59
- expect(lobster).not.toBeNull();
60
- expect(lobster.length).toEqual(1);
61
- expect(lobster[0]).toEqual('n2');
62
- });
63
30
  });
64
31
 
65
32
  describe('mix of numeric weight and style', function () {
@@ -70,23 +37,16 @@ describe('FontApiParser', function () {
70
37
  parser.parse();
71
38
  });
72
39
 
73
- it('should parse families correctly', function () {
74
- var families = parser.getFontFamilies();
75
-
76
- expect(families.length).toEqual(1);
77
- expect(families[0]).toEqual('Nobile');
78
- });
79
-
80
- it('should parse variations correctly', function () {
81
- var variations = parser.getVariations(),
82
- nobile = variations['Nobile'];
40
+ it('should parse fonts correctly', function () {
41
+ var fonts = parser.getFonts();
83
42
 
84
- expect(nobile).not.toBeNull();
85
- expect(nobile.length).toEqual(4);
86
- expect(nobile[0]).toEqual('i7');
87
- expect(nobile[1]).toEqual('n7');
88
- expect(nobile[2]).toEqual('i2');
89
- expect(nobile[3]).toEqual('n4');
43
+ expect(fonts.length).toEqual(4);
44
+ expect(fonts).toEqual([
45
+ new Font('Nobile', 'i7'),
46
+ new Font('Nobile', 'n7'),
47
+ new Font('Nobile', 'i2'),
48
+ new Font('Nobile', 'n4')
49
+ ]);
90
50
  });
91
51
  });
92
52
 
@@ -99,19 +59,10 @@ describe('FontApiParser', function () {
99
59
  });
100
60
 
101
61
  it('should parse families correctly', function () {
102
- var families = parser.getFontFamilies();
103
-
104
- expect(families.length).toEqual(1);
105
- expect(families[0]).toEqual('Nobile');
106
- });
62
+ var fonts = parser.getFonts();
107
63
 
108
- it('should parse variations correctly', function () {
109
- var variations = parser.getVariations(),
110
- nobile = variations['Nobile'];
111
-
112
- expect(nobile).not.toBeNull();
113
- expect(nobile.length).toEqual(1);
114
- expect(nobile[0]).toEqual('n4');
64
+ expect(fonts.length).toEqual(1);
65
+ expect(fonts[0]).toEqual(new Font('Nobile', 'n4'));
115
66
  });
116
67
  });
117
68
 
@@ -124,19 +75,10 @@ describe('FontApiParser', function () {
124
75
  });
125
76
 
126
77
  it('should parse families correctly', function () {
127
- var families = parser.getFontFamilies();
78
+ var fonts = parser.getFonts();
128
79
 
129
- expect(families.length).toEqual(1);
130
- expect(families[0]).toEqual('Nobile');
131
- });
132
-
133
- it('should parse variations correctly', function () {
134
- var variations = parser.getVariations(),
135
- nobile = variations['Nobile'];
136
-
137
- expect(nobile).not.toBeNull();
138
- expect(nobile.length).toEqual(1);
139
- expect(nobile[0]).toEqual('n4');
80
+ expect(fonts.length).toEqual(1);
81
+ expect(fonts[0]).toEqual(new Font('Nobile', 'n4'));
140
82
  });
141
83
  });
142
84
 
@@ -149,19 +91,10 @@ describe('FontApiParser', function () {
149
91
  });
150
92
 
151
93
  it('should parse families correctly', function () {
152
- var families = parser.getFontFamilies();
153
-
154
- expect(families.length).toEqual(1);
155
- expect(families[0]).toEqual('Cantarell');
156
- });
94
+ var fonts = parser.getFonts();
157
95
 
158
- it('should parse variations correctly', function () {
159
- var variations = parser.getVariations(),
160
- cantarell = variations['Cantarell'];
161
-
162
- expect(cantarell).not.toBeNull();
163
- expect(cantarell.length).toEqual(1);
164
- expect(cantarell[0]).toEqual('n4');
96
+ expect(fonts.length).toEqual(1);
97
+ expect(fonts[0]).toEqual(new Font('Cantarell', 'n4'));
165
98
  });
166
99
 
167
100
  it('should parse pick test strings correctly', function () {
@@ -182,19 +115,10 @@ describe('FontApiParser', function () {
182
115
  });
183
116
 
184
117
  it('should parse families correctly', function () {
185
- var families = parser.getFontFamilies();
118
+ var fonts = parser.getFonts();
186
119
 
187
- expect(families.length).toEqual(1);
188
- expect(families[0]).toEqual('Cantarell');
189
- });
190
-
191
- it('should parse variations correctly', function () {
192
- var variations = parser.getVariations(),
193
- cantarell = variations['Cantarell'];
194
-
195
- expect(cantarell).not.toBeNull();
196
- expect(cantarell.length).toEqual(1);
197
- expect(cantarell[0]).toEqual('n4');
120
+ expect(fonts.length).toEqual(1);
121
+ expect(fonts[0]).toEqual(new Font('Cantarell', 'n4'));
198
122
  });
199
123
 
200
124
  it('should parse pick test strings correctly', function () {
@@ -215,20 +139,13 @@ describe('FontApiParser', function () {
215
139
  });
216
140
 
217
141
  it('should parse families correctly', function () {
218
- var families = parser.getFontFamilies();
219
-
220
- expect(families.length).toEqual(1);
221
- expect(families[0]).toEqual('Cantarell');
222
- });
142
+ var fonts = parser.getFonts();
223
143
 
224
- it('should parse variations correctly', function () {
225
- var variations = parser.getVariations(),
226
- cantarell = variations['Cantarell'];
227
-
228
- expect(cantarell).not.toBeNull();
229
- expect(cantarell.length).toEqual(2);
230
- expect(cantarell[0]).toEqual('n4');
231
- expect(cantarell[1]).toEqual('n7');
144
+ expect(fonts.length).toEqual(2);
145
+ expect(fonts).toEqual([
146
+ new Font('Cantarell', 'n4'),
147
+ new Font('Cantarell', 'n7')
148
+ ]);
232
149
  });
233
150
 
234
151
  it('should parse pick test strings correctly', function () {
@@ -249,19 +166,10 @@ describe('FontApiParser', function () {
249
166
  });
250
167
 
251
168
  it('should parse families correctly', function () {
252
- var families = parser.getFontFamilies();
169
+ var fonts = parser.getFonts();
253
170
 
254
- expect(families.length).toEqual(1);
255
- expect(families[0]).toEqual('Hanuman');
256
- });
257
-
258
- it('should parse variations correctly', function () {
259
- var variations = parser.getVariations(),
260
- hanuman = variations['Hanuman'];
261
-
262
- expect(hanuman).not.toBeNull();
263
- expect(hanuman.length).toEqual(1);
264
- expect(hanuman[0]).toEqual('n4');
171
+ expect(fonts.length).toEqual(1);
172
+ expect(fonts[0]).toEqual(new Font('Hanuman', 'n4'));
265
173
  });
266
174
 
267
175
  it('should parse pick test strings correctly', function () {
@@ -282,19 +190,10 @@ describe('FontApiParser', function () {
282
190
  });
283
191
 
284
192
  it('should parse families correctly', function () {
285
- var families = parser.getFontFamilies();
286
-
287
- expect(families.length).toEqual(1);
288
- expect(families[0]).toEqual('Hanuman');
289
- });
193
+ var fonts = parser.getFonts();
290
194
 
291
- it('should parse variations correctly', function () {
292
- var variations = parser.getVariations(),
293
- hanuman = variations['Hanuman'];
294
-
295
- expect(hanuman).not.toBeNull();
296
- expect(hanuman.length).toEqual(1);
297
- expect(hanuman[0]).toEqual('n4');
195
+ expect(fonts.length).toEqual(1);
196
+ expect(fonts[0]).toEqual(new Font('Hanuman', 'n4'));
298
197
  });
299
198
 
300
199
  it('should parse pick test strings correctly', function () {
@@ -315,34 +214,15 @@ describe('FontApiParser', function () {
315
214
  });
316
215
 
317
216
  it('should parse families correctly', function () {
318
- var fontFamilies = parser.getFontFamilies();
319
-
320
- expect(fontFamilies.length).toEqual(3);
321
- expect(fontFamilies).toEqual([
322
- 'Erica One',
323
- 'Droid Serif',
324
- 'Yanone Kaffeesatz'
217
+ var fonts = parser.getFonts();
218
+
219
+ expect(fonts.length).toEqual(4);
220
+ expect(fonts).toEqual([
221
+ new Font('Erica One', 'n4'),
222
+ new Font('Droid Serif', 'n4'),
223
+ new Font('Yanone Kaffeesatz', 'n4'),
224
+ new Font('Yanone Kaffeesatz', 'n7')
325
225
  ]);
326
226
  });
327
-
328
- it('should parse variations correctly', function () {
329
- var variations = parser.getVariations();
330
-
331
- var ericaOne = variations['Erica One'];
332
- expect(ericaOne).not.toBeNull();
333
- expect(ericaOne.length).toEqual(1);
334
- expect(ericaOne[0]).toEqual('n4');
335
-
336
- var droidSerif = variations['Droid Serif'];
337
- expect(droidSerif).not.toBeNull();
338
- expect(droidSerif.length).toEqual(1);
339
- expect(droidSerif[0]).toEqual('n4');
340
-
341
- var yanoneKaffeesatz = variations['Yanone Kaffeesatz'];
342
- expect(yanoneKaffeesatz).not.toBeNull();
343
- expect(yanoneKaffeesatz.length).toEqual(2);
344
- expect(yanoneKaffeesatz[0]).toEqual('n4');
345
- expect(yanoneKaffeesatz[1]).toEqual('n7');
346
- });
347
227
  });
348
228
  });