forked from jverkoey/nimbus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_n_i_stylesheet_tests_8m_source.html
209 lines (188 loc) · 13.3 KB
/
_n_i_stylesheet_tests_8m_source.html
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Nimbus: src/css/unittests/NIStylesheetTests.m Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-24278774-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div id="page">
<div style="position:relative">
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<a style="float: right;margin-right:20px;margin-top:20px" href='http://www.pledgie.com/campaigns/15519'><img alt='Click here to support Nimbus development and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/15519.png?skin_name=chrome' border='0' /></a>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Nimbus
 <span id="projectnumber">0.9.0 - <a href="http://github.com/jverkoey/nimbus">Nimbus is proudly hosted on Github</a></span>
</div>
<div id="projectbrief">An iOS framework whose growth is bounded by O(documentation).</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.4-20110629 -->
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('_n_i_stylesheet_tests_8m.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">src/css/unittests/NIStylesheetTests.m</div> </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//</span>
<a name="l00002"></a>00002 <span class="comment">// Copyright 2011 Jeff Verkoeyen</span>
<a name="l00003"></a>00003 <span class="comment">//</span>
<a name="l00004"></a>00004 <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span>
<a name="l00005"></a>00005 <span class="comment">// you may not use this file except in compliance with the License.</span>
<a name="l00006"></a>00006 <span class="comment">// You may obtain a copy of the License at</span>
<a name="l00007"></a>00007 <span class="comment">//</span>
<a name="l00008"></a>00008 <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00009"></a>00009 <span class="comment">//</span>
<a name="l00010"></a>00010 <span class="comment">// Unless required by applicable law or agreed to in writing, software</span>
<a name="l00011"></a>00011 <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00012"></a>00012 <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00013"></a>00013 <span class="comment">// See the License for the specific language governing permissions and</span>
<a name="l00014"></a>00014 <span class="comment">// limitations under the License.</span>
<a name="l00015"></a>00015 <span class="comment">//</span>
<a name="l00016"></a>00016
<a name="l00017"></a>00017 <span class="comment">// See: http://bit.ly/hS5nNh for unit test macros.</span>
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="preprocessor">#import <SenTestingKit/SenTestingKit.h></span>
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="preprocessor">#import "NimbusCSS.h"</span>
<a name="l00022"></a>00022
<a name="l00023"></a>00023 <span class="keyword">@interface </span>NIStylesheetTests : SenTestCase {
<a name="l00024"></a>00024 <span class="keyword">@private</span>
<a name="l00025"></a>00025 NSBundle* _unitTestBundle;
<a name="l00026"></a>00026 }
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="keyword">@end</span>
<a name="l00029"></a>00029
<a name="l00030"></a>00030
<a name="l00034"></a>00034 <span class="keyword">@implementation </span>NIStylesheetTests
<a name="l00035"></a>00035
<a name="l00036"></a>00036
<a name="l00038"></a>00038 - (void)setUp {
<a name="l00039"></a>00039 _unitTestBundle = [[NSBundle bundleWithIdentifier:@"com.nimbus.css.unittests"] retain];
<a name="l00040"></a>00040 STAssertNotNil(_unitTestBundle, <span class="stringliteral">@"Unable to find the bundle %@"</span>, [NSBundle allBundles]);
<a name="l00041"></a>00041 }
<a name="l00042"></a>00042
<a name="l00043"></a>00043
<a name="l00045"></a>00045 - (void)tearDown {
<a name="l00046"></a>00046 <a class="code" href="group___preprocessor-_macros.html#ga5d2e99251aeb3ddb687e27f72336e5db" title="Release and assign nil to an object.">NI_RELEASE_SAFELY</a>(_unitTestBundle);
<a name="l00047"></a>00047 }
<a name="l00048"></a>00048
<a name="l00049"></a>00049
<a name="l00051"></a>00051 - (void)testFailures {
<a name="l00052"></a>00052 <a class="code" href="interface_n_i_stylesheet.html" title="Loads and caches information regarding a specific stylesheet.">NIStylesheet</a>* stylesheet = [[[<a class="code" href="interface_n_i_stylesheet.html" title="Loads and caches information regarding a specific stylesheet.">NIStylesheet</a> alloc] init] autorelease];
<a name="l00053"></a>00053
<a name="l00054"></a>00054 STAssertFalse([stylesheet loadFromPath:nil], <span class="stringliteral">@"Parsing nil path should fail."</span>);
<a name="l00055"></a>00055 STAssertFalse([stylesheet loadFromPath:nil pathPrefix:nil], <span class="stringliteral">@"Parsing nil path should fail."</span>);
<a name="l00056"></a>00056 STAssertFalse([stylesheet loadFromPath:nil pathPrefix:nil delegate:nil], <span class="stringliteral">@"Parsing nil path should fail."</span>);
<a name="l00057"></a>00057 STAssertFalse([stylesheet loadFromPath:<span class="stringliteral">@""</span>], <span class="stringliteral">@"Parsing empty path should fail."</span>);
<a name="l00058"></a>00058 STAssertFalse([stylesheet loadFromPath:<span class="stringliteral">@"nonexistent_file"</span>], <span class="stringliteral">@"Parsing invalid file should fail."</span>);
<a name="l00059"></a>00059 }
<a name="l00060"></a>00060
<a name="l00061"></a>00061
<a name="l00063"></a>00063 - (void)assertColor:(UIColor *)color1 equalsColor:(UIColor *)color2 {
<a name="l00064"></a>00064 <span class="keywordtype">size_t</span> nColors1 = CGColorGetNumberOfComponents(color1.CGColor);
<a name="l00065"></a>00065 <span class="keywordtype">size_t</span> nColors2 = CGColorGetNumberOfComponents(color2.CGColor);
<a name="l00066"></a>00066 STAssertEquals(nColors1, nColors2, <span class="stringliteral">@"Should have the same number of components."</span>);
<a name="l00067"></a>00067
<a name="l00068"></a>00068 <span class="keyword">const</span> <span class="keywordtype">float</span>* colors1 = CGColorGetComponents(color1.CGColor);
<a name="l00069"></a>00069 <span class="keyword">const</span> <span class="keywordtype">float</span>* colors2 = CGColorGetComponents(color2.CGColor);
<a name="l00070"></a>00070 <span class="keywordflow">for</span> (NSInteger ix = 0; ix < nColors1; ++ix) {
<a name="l00071"></a>00071 STAssertEqualsWithAccuracy(colors1[ix], colors2[ix], 0.0001, <span class="stringliteral">@"Colors should match."</span>);
<a name="l00072"></a>00072 }
<a name="l00073"></a>00073 }
<a name="l00074"></a>00074
<a name="l00075"></a>00075
<a name="l00077"></a>00077 - (void)testApplyStyleToUILabel {
<a name="l00078"></a>00078 <span class="comment">// Sadly nearly all of these tests don't work with SenTest. The error we get when we run these</span>
<a name="l00079"></a>00079 <span class="comment">// tests is:</span>
<a name="l00080"></a>00080 <span class="comment">// ERROR: System image table has not been initialized. Do not ask for images or set up UI before UIApplicationMain() has been called.</span>
<a name="l00081"></a>00081 <span class="keywordflow">return</span>;
<a name="l00082"></a>00082
<a name="l00083"></a>00083 <a class="code" href="interface_n_i_stylesheet.html" title="Loads and caches information regarding a specific stylesheet.">NIStylesheet</a>* stylesheet = [[[<a class="code" href="interface_n_i_stylesheet.html" title="Loads and caches information regarding a specific stylesheet.">NIStylesheet</a> alloc] init] autorelease];
<a name="l00084"></a>00084 <a class="code" href="class_n_s_string.html" title="For manipulating NSStrings.">NSString</a>* pathToFile = <a class="code" href="group___paths.html#gae830aca759474dfce53aee898ebaf0df" title="Create a path with the given bundle and the relative path appended.">NIPathForBundleResource</a>(_unitTestBundle, <span class="stringliteral">@"UILabel.css"</span>);
<a name="l00085"></a>00085
<a name="l00086"></a>00086 STAssertTrue([stylesheet loadFromPath:pathToFile], <span class="stringliteral">@"The stylesheet should have been parsed."</span>);
<a name="l00087"></a>00087
<a name="l00088"></a>00088 UILabel* label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
<a name="l00089"></a>00089 [stylesheet <a class="code" href="interface_n_i_stylesheet.html#a62b3736dd285a2eb2e60c4c446605c24" title="Apply any rulesets that match the className to the given view.">applyStyleToView</a>:label <a class="code" href="interface_n_i_stylesheet.html#a62b3736dd285a2eb2e60c4c446605c24" title="Apply any rulesets that match the className to the given view.">withClassName</a>:NSStringFromClass([label class])];
<a name="l00090"></a>00090
<a name="l00091"></a>00091 [<span class="keyword">self</span> assertColor:label.textColor equalsColor:[UIColor redColor]];
<a name="l00092"></a>00092 [<span class="keyword">self</span> assertColor:label.shadowColor equalsColor:[UIColor greenColor]];
<a name="l00093"></a>00093 STAssertEquals(label.textAlignment, UITextAlignmentRight, <span class="stringliteral">@"Alignment should match."</span>);
<a name="l00094"></a>00094 STAssertEquals(label.shadowOffset.width, 20.f, <span class="stringliteral">@"Shadow offset should match."</span>);
<a name="l00095"></a>00095 STAssertEquals(label.shadowOffset.height, -30.f, <span class="stringliteral">@"Shadow offset should match."</span>);
<a name="l00096"></a>00096 STAssertEquals(label.lineBreakMode, UILineBreakModeTailTruncation, <span class="stringliteral">@"Should match."</span>);
<a name="l00097"></a>00097 STAssertEquals(label.numberOfLines, 5, <span class="stringliteral">@"Should match."</span>);
<a name="l00098"></a>00098 STAssertEquals(label.minimumFontSize, 5.f, <span class="stringliteral">@"Should match."</span>);
<a name="l00099"></a>00099 STAssertTrue(label.adjustsFontSizeToFitWidth, <span class="stringliteral">@"Should match."</span>);
<a name="l00100"></a>00100 STAssertEquals(label.baselineAdjustment, UIBaselineAdjustmentAlignCenters, <span class="stringliteral">@"Should match."</span>);
<a name="l00101"></a>00101 STAssertEquals(label.alpha, 0.5f, <span class="stringliteral">@"Should match."</span>);
<a name="l00102"></a>00102 }
<a name="l00103"></a>00103
<a name="l00104"></a>00104
<a name="l00105"></a>00105 <span class="keyword">@end</span>
</pre></div><div id="disqus_thread"></div></div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>NIStylesheetTests.m</b> </li>
</div><!-- .fixedwidth -->
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'nimbusdocumentation'; // required: replace example with your forum shortname
// The following are highly recommended additional parameters. Remove the slashes in front to use.
// var disqus_identifier = 'unique_dynamic_id_1234';
// var disqus_url = 'http://example.com/permalink-to-page.html';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<span class="footer">Generated for Nimbus by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4-20110629 </span>
</ul>
</div>
</div> <!-- page -->
</body>
</html>