@@ -25,26 +25,6 @@ pub struct CrateAttrs {
25
25
name : Option < ~str >
26
26
}
27
27
28
- #[ cfg( test) ]
29
- mod test {
30
- use syntax:: ast;
31
- use syntax;
32
-
33
- use core:: option:: None ;
34
-
35
- pub fn parse_attributes ( source : ~str ) -> ~[ ast:: attribute ] {
36
- use syntax:: parse;
37
- use syntax:: parse:: attr:: parser_attr;
38
- use syntax:: codemap;
39
-
40
- let parse_sess = syntax:: parse:: new_parse_sess ( None ) ;
41
- let parser = parse:: new_parser_from_source_str (
42
- parse_sess, ~[ ] , ~"-", codemap::FssNone, @source);
43
-
44
- parser.parse_outer_attributes()
45
- }
46
- }
47
-
48
28
fn doc_metas (
49
29
attrs : ~[ ast:: attribute ]
50
30
) -> ~[ @ast:: meta_item ] {
@@ -66,30 +46,6 @@ pub fn parse_crate(attrs: ~[ast::attribute]) -> CrateAttrs {
66
46
}
67
47
}
68
48
69
- #[ test]
70
- fn should_extract_crate_name_from_link_attribute ( ) {
71
- let source = ~"#[ link ( name = \"snuggles\" ) ] ";
72
- let attrs = test:: parse_attributes ( source) ;
73
- let attrs = parse_crate ( attrs) ;
74
- assert ! ( attrs. name == Some ( ~"snuggles"));
75
- }
76
-
77
- #[test]
78
- fn should_not_extract_crate_name_if_no_link_attribute() {
79
- let source = ~" ";
80
- let attrs = test::parse_attributes(source);
81
- let attrs = parse_crate(attrs);
82
- assert!(attrs.name == None);
83
- }
84
-
85
- #[test]
86
- fn should_not_extract_crate_name_if_no_name_value_in_link_attribute() {
87
- let source = ~" #[ link( whatever) ] ";
88
- let attrs = test::parse_attributes(source);
89
- let attrs = parse_crate(attrs);
90
- assert!(attrs.name == None);
91
- }
92
-
93
49
pub fn parse_desc ( attrs : ~[ ast:: attribute ] ) -> Option < ~str > {
94
50
let doc_strs = do doc_metas ( attrs) . filter_mapped |meta| {
95
51
attr:: get_meta_item_value_str ( * meta) . map ( |s| copy * * s)
@@ -101,60 +57,103 @@ pub fn parse_desc(attrs: ~[ast::attribute]) -> Option<~str> {
101
57
}
102
58
}
103
59
104
- #[ test]
105
- fn parse_desc_should_handle_undocumented_mods ( ) {
106
- let source = ~"";
107
- let attrs = test:: parse_attributes ( source) ;
108
- let attrs = parse_desc ( attrs) ;
109
- assert ! ( attrs == None ) ;
110
- }
111
-
112
- #[ test]
113
- fn parse_desc_should_parse_simple_doc_attributes ( ) {
114
- let source = ~"#[ doc = \"basic\" ] ";
115
- let attrs = test:: parse_attributes ( source) ;
116
- let attrs = parse_desc ( attrs) ;
117
- assert!( attrs == Some ( ~"basic"));
118
- }
119
-
120
60
pub fn parse_hidden ( attrs : ~[ ast:: attribute ] ) -> bool {
121
61
do doc_metas ( attrs) . find |meta| {
122
62
match attr:: get_meta_item_list ( * meta) {
123
- Some(metas) => {
124
- let hiddens = attr::find_meta_items_by_name(metas, ~" hidden");
125
- !hiddens.is_empty()
126
- }
127
- None => false
63
+ Some ( metas) => {
64
+ let hiddens = attr:: find_meta_items_by_name ( metas, ~"hidden") ;
65
+ !hiddens. is_empty ( )
66
+ }
67
+ None => false
128
68
}
129
69
} . is_some ( )
130
70
}
131
71
132
- #[test]
133
- fn should_parse_hidden_attribute() {
134
- let source = ~" # [ doc ( hidden ) ] " ;
135
- let attrs = test::parse_attributes(source) ;
136
- assert!( parse_hidden(attrs) == true) ;
137
- }
72
+ #[ cfg ( test) ]
73
+ mod test {
74
+ use syntax :: ast ;
75
+ use syntax ;
76
+ use super :: { parse_hidden, parse_crate , parse_desc } ;
77
+ use core :: prelude :: * ;
138
78
139
- #[test]
140
- fn should_parse_hidden_attribute_with_other_docs() {
141
- let source = ~" #[ doc = \"foo\" ] #[ doc( hidden) ] #[ doc = \"foo\" ] ";
142
- let attrs = test::parse_attributes(source);
143
- assert!(parse_hidden(attrs) == true);
144
- }
79
+ fn parse_attributes ( source : ~str ) -> ~[ ast:: attribute ] {
80
+ use syntax:: parse;
81
+ use syntax:: parse:: attr:: parser_attr;
82
+ use syntax:: codemap;
145
83
146
- #[test]
147
- fn should_not_parse_non_hidden_attribute() {
148
- let source = ~" # [ doc = \" \" ] " ;
149
- let attrs = test::parse_attributes(source);
150
- assert!(parse_hidden(attrs) == false);
151
- }
84
+ let parse_sess = syntax :: parse :: new_parse_sess ( None ) ;
85
+ let parser = parse :: new_parser_from_source_str (
86
+ parse_sess , ~ [ ] , ~"- ", codemap::FssNone, @source) ;
87
+
88
+ parser.parse_outer_attributes()
89
+ }
152
90
153
- #[test]
154
- fn should_concatenate_multiple_doc_comments() {
155
- let source = ~" /// foo\n/// bar";
156
- let desc = parse_desc( test:: parse_attributes( source) ) ;
157
- assert!( desc == Some ( ~"foo\n bar") ) ;
158
- }
159
91
92
+ #[test]
93
+ fn should_extract_crate_name_from_link_attribute() {
94
+ let source = ~" #[ link( name = \"snuggles\" ) ] ";
95
+ let attrs = parse_attributes(source);
96
+ let attrs = parse_crate(attrs);
97
+ assert!(attrs.name == Some(~" snuggles") ) ;
98
+ }
160
99
100
+ #[ test]
101
+ fn should_not_extract_crate_name_if_no_link_attribute ( ) {
102
+ let source = ~"";
103
+ let attrs = parse_attributes ( source) ;
104
+ let attrs = parse_crate ( attrs) ;
105
+ assert ! ( attrs. name == None ) ;
106
+ }
107
+
108
+ #[ test]
109
+ fn should_not_extract_crate_name_if_no_name_value_in_link_attribute ( ) {
110
+ let source = ~"#[ link ( whatever) ] ";
111
+ let attrs = parse_attributes ( source) ;
112
+ let attrs = parse_crate ( attrs) ;
113
+ assert ! ( attrs. name == None ) ;
114
+ }
115
+
116
+ #[ test]
117
+ fn parse_desc_should_handle_undocumented_mods ( ) {
118
+ let source = ~"";
119
+ let attrs = parse_attributes ( source) ;
120
+ let attrs = parse_desc ( attrs) ;
121
+ assert ! ( attrs == None ) ;
122
+ }
123
+
124
+ #[ test]
125
+ fn parse_desc_should_parse_simple_doc_attributes ( ) {
126
+ let source = ~"#[ doc = \"basic\" ] ";
127
+ let attrs = parse_attributes ( source) ;
128
+ let attrs = parse_desc ( attrs) ;
129
+ assert!( attrs == Some ( ~"basic"));
130
+ }
131
+
132
+ #[test]
133
+ fn should_parse_hidden_attribute() {
134
+ let source = ~" #[ doc( hidden) ] ";
135
+ let attrs = parse_attributes(source);
136
+ assert!(parse_hidden(attrs) == true);
137
+ }
138
+
139
+ #[test]
140
+ fn should_parse_hidden_attribute_with_other_docs() {
141
+ let source = ~" #[ doc = \"foo\" ] #[ doc( hidden) ] #[ doc = \"foo\" ] ";
142
+ let attrs = parse_attributes(source);
143
+ assert!(parse_hidden(attrs) == true);
144
+ }
145
+
146
+ #[test]
147
+ fn should_not_parse_non_hidden_attribute() {
148
+ let source = ~" #[ doc = \"\" ] ";
149
+ let attrs = parse_attributes(source);
150
+ assert!(parse_hidden(attrs) == false);
151
+ }
152
+
153
+ #[test]
154
+ fn should_concatenate_multiple_doc_comments() {
155
+ let source = ~" /// foo\n/// bar";
156
+ let desc = parse_desc( parse_attributes( source) ) ;
157
+ assert!( desc == Some ( ~"foo\n bar") ) ;
158
+ }
159
+ }
0 commit comments