@@ -17,6 +17,7 @@ use cargo_registry::krate::{Crate, EncodableCrate};
17
17
use cargo_registry:: upload as u;
18
18
use cargo_registry:: user:: EncodableUser ;
19
19
use cargo_registry:: version:: EncodableVersion ;
20
+ use cargo_registry:: category:: Category ;
20
21
21
22
#[ derive( RustcDecodable ) ]
22
23
struct CrateList { crates : Vec < EncodableCrate > , meta : CrateMeta }
@@ -130,6 +131,23 @@ fn index_queries() {
130
131
assert_eq ! ( :: json:: <CrateList >( & mut response) . crates. len( ) , 2 ) ;
131
132
let mut response = ok_resp ! ( middle. call( req. with_query( "keyword=kw2" ) ) ) ;
132
133
assert_eq ! ( :: json:: <CrateList >( & mut response) . crates. len( ) , 0 ) ;
134
+
135
+ :: mock_category ( & mut req, "cat1" , "cat1" ) ;
136
+ :: mock_category ( & mut req, "cat1::bar" , "cat1::bar" ) ;
137
+ Category :: update_crate ( tx ( & req) , & krate, & [ "cat1" . to_string ( ) ,
138
+ "cat1::bar" . to_string ( ) ] ) . unwrap ( ) ;
139
+ let mut response = ok_resp ! ( middle. call( req. with_query( "category=cat1" ) ) ) ;
140
+ let cl = :: json :: < CrateList > ( & mut response) ;
141
+ assert_eq ! ( cl. crates. len( ) , 1 ) ;
142
+ assert_eq ! ( cl. meta. total, 1 ) ;
143
+ let mut response = ok_resp ! ( middle. call( req. with_query( "category=cat1::bar" ) ) ) ;
144
+ let cl = :: json :: < CrateList > ( & mut response) ;
145
+ assert_eq ! ( cl. crates. len( ) , 1 ) ;
146
+ assert_eq ! ( cl. meta. total, 1 ) ;
147
+ let mut response = ok_resp ! ( middle. call( req. with_query( "keyword=cat2" ) ) ) ;
148
+ let cl = :: json :: < CrateList > ( & mut response) ;
149
+ assert_eq ! ( cl. crates. len( ) , 0 ) ;
150
+ assert_eq ! ( cl. meta. total, 0 ) ;
133
151
}
134
152
135
153
#[ test]
0 commit comments