webfontloader 1.0.15 → 1.0.16

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.
@@ -0,0 +1,190 @@
1
+ var FontWatchRunnerTest = TestCase('FontWatchRunnerTest');
2
+
3
+ FontWatchRunnerTest.prototype.setUp = function() {
4
+ var self = this;
5
+
6
+ this.fontFamily_ = 'fontFamily1';
7
+ this.fontDescription_ = 'n4';
8
+
9
+ this.fontActiveCalled_ = 0;
10
+ this.fontActive_ = {};
11
+ this.fontInactiveCalled_ = 0;
12
+ this.fontInactive_ = {};
13
+ this.activeCallback_ = function(fontFamily, fontDescription) {
14
+ self.fontActiveCalled_++;
15
+ self.fontActive_[fontFamily + ' ' + fontDescription] = true;
16
+ };
17
+ this.inactiveCallback_ = function(fontFamily, fontDescription) {
18
+ self.fontInactiveCalled_++;
19
+ self.fontInactive_[fontFamily + ' ' + fontDescription] = true;
20
+ };
21
+
22
+ this.createElementCalled_ = 0;
23
+ this.createdElements_ = [];
24
+ this.insertIntoCalled_ = 0;
25
+ this.removeElementCalled_ = 0;
26
+ this.fakeDomHelper_ = {
27
+ createElement: function(name, attrs, innerHtml) {
28
+ self.createElementCalled_++;
29
+ self.createdElements_.push({
30
+ 'name': name,
31
+ 'attrs': attrs,
32
+ 'innerHtml': innerHtml
33
+ });
34
+
35
+ var element = document.createElement(name);
36
+
37
+ for (var attr in attrs) {
38
+ element.setAttribute(attr, attrs[attr]);
39
+ }
40
+ element.innerHTML = innerHtml;
41
+ return element;
42
+ },
43
+ insertInto: function(name, el) {
44
+ self.insertIntoCalled_++;
45
+ },
46
+ removeElement: function(el) {
47
+ self.removeElementCalled_++;
48
+ }
49
+ };
50
+
51
+ this.timesToCheckWidthsBeforeChange_ = 0;
52
+ this.fakeFontSizer_ = {
53
+ getWidth: function(el) {
54
+ if (el.style.fontFamily.indexOf(self.fontFamily_) != -1) {
55
+ // This is a font stack with fontFamily included (not just fallbacks)
56
+ if (self.timesToCheckWidthsBeforeChange_ <= 0) {
57
+ return 2;
58
+ } else {
59
+ // Two fallback stacks, so we check width twice each time
60
+ self.timesToCheckWidthsBeforeChange_ -= 0.5;
61
+ return 1;
62
+ }
63
+ } else {
64
+ return 1;
65
+ }
66
+ }
67
+ };
68
+
69
+ this.timesToGetTimeBeforeTimeout_ = 10;
70
+ this.fakeGetTime_ = function() {
71
+ if (self.timesToGetTimeBeforeTimeout_ <= 0) {
72
+ return 6000;
73
+ } else {
74
+ self.timesToGetTimeBeforeTimeout_--;
75
+ return 1;
76
+ }
77
+ };
78
+
79
+ this.asyncCalled_ = false;
80
+ this.fakeAsyncCall_ = function(func, timeout) {
81
+ self.asyncCalled_ = true;
82
+ func();
83
+ };
84
+
85
+ };
86
+
87
+ FontWatchRunnerTest.prototype.testWatchFontAlreadyLoaded = function() {
88
+ this.timesToCheckWidthsBeforeChange_ = 0;
89
+ this.timesToGetTimeBeforeTimeout_ = 10;
90
+
91
+ new webfont.FontWatchRunner(this.activeCallback_, this.inactiveCallback_,
92
+ this.fakeDomHelper_, this.fakeFontSizer_, this.fakeAsyncCall_,
93
+ this.fakeGetTime_, this.fontFamily_, this.fontDescription_);
94
+
95
+ assertFalse(this.asyncCalled_);
96
+
97
+ assertEquals(1, this.fontActiveCalled_);
98
+ assertEquals(true, this.fontActive_['fontFamily1 n4']);
99
+ assertEquals(0, this.fontInactiveCalled_);
100
+ };
101
+
102
+ FontWatchRunnerTest.prototype.testWatchFontWaitForLoadActive = function() {
103
+ this.timesToCheckWidthsBeforeChange_ = 3;
104
+ this.timesToGetTimeBeforeTimeout_ = 10;
105
+
106
+ new webfont.FontWatchRunner(this.activeCallback_, this.inactiveCallback_,
107
+ this.fakeDomHelper_, this.fakeFontSizer_, this.fakeAsyncCall_,
108
+ this.fakeGetTime_, this.fontFamily_, this.fontDescription_);
109
+
110
+ assertTrue(this.asyncCalled_);
111
+
112
+ assertEquals(1, this.fontActiveCalled_);
113
+ assertEquals(true, this.fontActive_['fontFamily1 n4']);
114
+ assertEquals(0, this.fontInactiveCalled_);
115
+ };
116
+
117
+ FontWatchRunnerTest.prototype.testWatchFontWaitForLoadInactive = function() {
118
+ this.timesToCheckWidthsBeforeChange_ = 10;
119
+ this.timesToGetTimeBeforeTimeout_ = 3;
120
+
121
+ new webfont.FontWatchRunner(this.activeCallback_, this.inactiveCallback_,
122
+ this.fakeDomHelper_, this.fakeFontSizer_, this.fakeAsyncCall_,
123
+ this.fakeGetTime_, this.fontFamily_, this.fontDescription_);
124
+
125
+ assertTrue(this.asyncCalled_);
126
+
127
+ assertEquals(0, this.fontActiveCalled_);
128
+ assertEquals(1, this.fontInactiveCalled_);
129
+ assertEquals(true, this.fontInactive_['fontFamily1 n4']);
130
+ };
131
+
132
+ FontWatchRunnerTest.prototype.testDomWithDefaultTestString = function() {
133
+ this.timesToCheckWidthsBeforeChange_ = 3;
134
+ this.timesToGetTimeBeforeTimeout_ = 10;
135
+
136
+ new webfont.FontWatchRunner(this.activeCallback_, this.inactiveCallback_,
137
+ this.fakeDomHelper_, this.fakeFontSizer_, this.fakeAsyncCall_,
138
+ this.fakeGetTime_, this.fontFamily_, this.fontDescription_);
139
+
140
+ assertEquals(4, this.createElementCalled_);
141
+ assertEquals('span', this.createdElements_[0]['name']);
142
+ assertEquals(-1, this.createdElements_[0]['attrs']['style'].indexOf('fontFamily1'));
143
+ assertNotEquals(-1, this.createdElements_[0]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_A));
144
+ assertEquals('BESs', this.createdElements_[0]['innerHtml']);
145
+ assertEquals('span', this.createdElements_[1]['name']);
146
+ assertEquals(-1, this.createdElements_[1]['attrs']['style'].indexOf('fontFamily1'));
147
+ assertNotEquals(-1, this.createdElements_[1]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_B));
148
+ assertEquals('BESs', this.createdElements_[1]['innerHtml']);
149
+ assertEquals('span', this.createdElements_[2]['name']);
150
+ assertNotEquals(-1, this.createdElements_[2]['attrs']['style'].indexOf('fontFamily1'));
151
+ assertNotEquals(-1, this.createdElements_[2]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_A));
152
+ assertEquals('BESs', this.createdElements_[2]['innerHtml']);
153
+ assertEquals('span', this.createdElements_[3]['name']);
154
+ assertNotEquals(-1, this.createdElements_[3]['attrs']['style'].indexOf('fontFamily1'));
155
+ assertNotEquals(-1, this.createdElements_[3]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_B));
156
+ assertEquals('BESs', this.createdElements_[3]['innerHtml']);
157
+ assertEquals(4, this.insertIntoCalled_);
158
+ assertEquals(4, this.removeElementCalled_);
159
+
160
+ };
161
+
162
+ FontWatchRunnerTest.prototype.testDomWithNotDefaultTestString = function() {
163
+ this.timesToCheckWidthsBeforeChange_ = 3;
164
+ this.timesToGetTimeBeforeTimeout_ = 10;
165
+
166
+ new webfont.FontWatchRunner(this.activeCallback_, this.inactiveCallback_,
167
+ this.fakeDomHelper_, this.fakeFontSizer_, this.fakeAsyncCall_,
168
+ this.fakeGetTime_, this.fontFamily_, this.fontDescription_, 'testString');
169
+
170
+ assertEquals(4, this.createElementCalled_);
171
+ assertEquals('span', this.createdElements_[0]['name']);
172
+ assertEquals(-1, this.createdElements_[0]['attrs']['style'].indexOf('fontFamily1'));
173
+ assertNotEquals(-1, this.createdElements_[0]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_A));
174
+ assertEquals('testString', this.createdElements_[0]['innerHtml']);
175
+ assertEquals('span', this.createdElements_[1]['name']);
176
+ assertEquals(-1, this.createdElements_[1]['attrs']['style'].indexOf('fontFamily1'));
177
+ assertNotEquals(-1, this.createdElements_[1]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_B));
178
+ assertEquals('testString', this.createdElements_[1]['innerHtml']);
179
+ assertEquals('span', this.createdElements_[2]['name']);
180
+ assertNotEquals(-1, this.createdElements_[2]['attrs']['style'].indexOf('fontFamily1'));
181
+ assertNotEquals(-1, this.createdElements_[2]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_A));
182
+ assertEquals('testString', this.createdElements_[2]['innerHtml']);
183
+ assertEquals('span', this.createdElements_[3]['name']);
184
+ assertNotEquals(-1, this.createdElements_[3]['attrs']['style'].indexOf('fontFamily1'));
185
+ assertNotEquals(-1, this.createdElements_[3]['attrs']['style'].indexOf(webfont.FontWatchRunner.DEFAULT_FONTS_B));
186
+ assertEquals('testString', this.createdElements_[3]['innerHtml']);
187
+ assertEquals(4, this.insertIntoCalled_);
188
+ assertEquals(4, this.removeElementCalled_);
189
+
190
+ };
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'webfontloader'
16
- s.version = '1.0.15'
17
- s.date = '2010-10-20'
16
+ s.version = '1.0.16'
17
+ s.date = '2010-11-18'
18
18
 
19
19
  ## Make sure your summary is short. The description may be as long
20
20
  ## as you like.
@@ -87,12 +87,14 @@ DESC
87
87
  lib/webfontloader/demo/public/event-js-loading.html
88
88
  lib/webfontloader/demo/public/events-variations.html
89
89
  lib/webfontloader/demo/public/events.html
90
+ lib/webfontloader/demo/public/fontwatchrunner-default-fonts.html
90
91
  lib/webfontloader/demo/public/google-css.html
91
92
  lib/webfontloader/demo/public/google.html
92
93
  lib/webfontloader/demo/public/ie-fast-js.html
93
94
  lib/webfontloader/demo/public/ie-slow-js.html
94
95
  lib/webfontloader/demo/public/ie-slow-link.html
95
96
  lib/webfontloader/demo/public/index.html
97
+ lib/webfontloader/demo/public/jquery.min.js
96
98
  lib/webfontloader/demo/public/typekit-variations.html
97
99
  lib/webfontloader/demo/public/typekit.html
98
100
  lib/webfontloader/demo/server.rb
@@ -106,6 +108,7 @@ DESC
106
108
  src-test/core/fonttest.js
107
109
  src-test/core/fontvariationdescriptiontest.js
108
110
  src-test/core/fontwatchertest.js
111
+ src-test/core/fontwatchrunnertest.js
109
112
  src-test/core/useragenttest.js
110
113
  src-test/custom/customcsstest.js
111
114
  src-test/google/fontapiparsertest.js
@@ -123,6 +126,7 @@ DESC
123
126
  src/core/fontmoduleloader.js
124
127
  src/core/fontvariationdescription.js
125
128
  src/core/fontwatcher.js
129
+ src/core/fontwatchrunner.js
126
130
  src/core/initialize.js
127
131
  src/core/namespace.js
128
132
  src/core/useragent.js
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webfontloader
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 55
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
8
  - 0
8
- - 15
9
- version: 1.0.15
9
+ - 16
10
+ version: 1.0.16
10
11
  platform: ruby
11
12
  authors:
12
13
  - Ryan Carver
@@ -15,16 +16,18 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-10-20 00:00:00 -07:00
19
+ date: 2010-11-18 00:00:00 -08:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
23
  name: rack
23
24
  prerelease: false
24
25
  requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
25
27
  requirements:
26
28
  - - ~>
27
29
  - !ruby/object:Gem::Version
30
+ hash: 29
28
31
  segments:
29
32
  - 1
30
33
  - 2
@@ -36,9 +39,11 @@ dependencies:
36
39
  name: sinatra
37
40
  prerelease: false
38
41
  requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
39
43
  requirements:
40
44
  - - ~>
41
45
  - !ruby/object:Gem::Version
46
+ hash: 15
42
47
  segments:
43
48
  - 1
44
49
  - 0
@@ -49,9 +54,11 @@ dependencies:
49
54
  name: vegas
50
55
  prerelease: false
51
56
  requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
52
58
  requirements:
53
59
  - - ~>
54
60
  - !ruby/object:Gem::Version
61
+ hash: 23
55
62
  segments:
56
63
  - 0
57
64
  - 1
@@ -98,12 +105,14 @@ files:
98
105
  - lib/webfontloader/demo/public/event-js-loading.html
99
106
  - lib/webfontloader/demo/public/events-variations.html
100
107
  - lib/webfontloader/demo/public/events.html
108
+ - lib/webfontloader/demo/public/fontwatchrunner-default-fonts.html
101
109
  - lib/webfontloader/demo/public/google-css.html
102
110
  - lib/webfontloader/demo/public/google.html
103
111
  - lib/webfontloader/demo/public/ie-fast-js.html
104
112
  - lib/webfontloader/demo/public/ie-slow-js.html
105
113
  - lib/webfontloader/demo/public/ie-slow-link.html
106
114
  - lib/webfontloader/demo/public/index.html
115
+ - lib/webfontloader/demo/public/jquery.min.js
107
116
  - lib/webfontloader/demo/public/typekit-variations.html
108
117
  - lib/webfontloader/demo/public/typekit.html
109
118
  - lib/webfontloader/demo/server.rb
@@ -117,6 +126,7 @@ files:
117
126
  - src-test/core/fonttest.js
118
127
  - src-test/core/fontvariationdescriptiontest.js
119
128
  - src-test/core/fontwatchertest.js
129
+ - src-test/core/fontwatchrunnertest.js
120
130
  - src-test/core/useragenttest.js
121
131
  - src-test/custom/customcsstest.js
122
132
  - src-test/google/fontapiparsertest.js
@@ -134,6 +144,7 @@ files:
134
144
  - src/core/fontmoduleloader.js
135
145
  - src/core/fontvariationdescription.js
136
146
  - src/core/fontwatcher.js
147
+ - src/core/fontwatchrunner.js
137
148
  - src/core/initialize.js
138
149
  - src/core/namespace.js
139
150
  - src/core/useragent.js
@@ -157,23 +168,27 @@ rdoc_options:
157
168
  require_paths:
158
169
  - lib
159
170
  required_ruby_version: !ruby/object:Gem::Requirement
171
+ none: false
160
172
  requirements:
161
173
  - - ">="
162
174
  - !ruby/object:Gem::Version
175
+ hash: 3
163
176
  segments:
164
177
  - 0
165
178
  version: "0"
166
179
  required_rubygems_version: !ruby/object:Gem::Requirement
180
+ none: false
167
181
  requirements:
168
182
  - - ">="
169
183
  - !ruby/object:Gem::Version
184
+ hash: 3
170
185
  segments:
171
186
  - 0
172
187
  version: "0"
173
188
  requirements: []
174
189
 
175
190
  rubyforge_project:
176
- rubygems_version: 1.3.6
191
+ rubygems_version: 1.3.7
177
192
  signing_key:
178
193
  specification_version: 2
179
194
  summary: WebFont Loader gives you added control when using linked fonts via @font-face.