Skip to content

Commit 213f425

Browse files
committed
Case insensitive letter search as well
1 parent aebaec8 commit 213f425

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/krate.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,9 +379,9 @@ pub fn index(req: &mut Request) -> CargoResult<Response> {
379379
pattern = format!("{}%", letter.as_slice().char_at(0)
380380
.to_lowercase());
381381
needs_pattern = true;
382-
(format!("SELECT * FROM crates WHERE name LIKE $1 {}
382+
(format!("SELECT * FROM crates WHERE lower(name) LIKE $1 {}
383383
LIMIT $2 OFFSET $3", sort_sql),
384-
"SELECT COUNT(*) FROM crates WHERE name LIKE $1".to_string())
384+
"SELECT COUNT(*) FROM crates WHERE lower(name) LIKE $1".to_string())
385385
})
386386
}).or_else(|| {
387387
query.get("keyword").map(|kw| {

src/tests/krate.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@ fn index_queries() {
6565
krate.readme = Some("readme".to_string());
6666
krate.description = Some("description".to_string());
6767
::mock_crate(&mut req, krate);
68+
::mock_crate(&mut req, ::krate("BAR"));
6869

69-
let mut response = ok_resp!(middle.call(req.with_query("q=bar")));
70+
let mut response = ok_resp!(middle.call(req.with_query("q=baz")));
7071
assert_eq!(::json::<CrateList>(&mut response).meta.total, 0);
7172

7273
// All of these fields should be indexed/searched by the queries
@@ -81,13 +82,17 @@ fn index_queries() {
8182

8283
let query = format!("user_id={}", u.id);
8384
let mut response = ok_resp!(middle.call(req.with_query(query.as_slice())));
84-
assert_eq!(::json::<CrateList>(&mut response).crates.len(), 1);
85+
assert_eq!(::json::<CrateList>(&mut response).crates.len(), 2);
8586
let mut response = ok_resp!(middle.call(req.with_query("user_id=0")));
8687
assert_eq!(::json::<CrateList>(&mut response).crates.len(), 0);
8788

8889
let mut response = ok_resp!(middle.call(req.with_query("letter=F")));
8990
assert_eq!(::json::<CrateList>(&mut response).crates.len(), 1);
9091
let mut response = ok_resp!(middle.call(req.with_query("letter=B")));
92+
assert_eq!(::json::<CrateList>(&mut response).crates.len(), 1);
93+
let mut response = ok_resp!(middle.call(req.with_query("letter=b")));
94+
assert_eq!(::json::<CrateList>(&mut response).crates.len(), 1);
95+
let mut response = ok_resp!(middle.call(req.with_query("letter=c")));
9196
assert_eq!(::json::<CrateList>(&mut response).crates.len(), 0);
9297

9398
let mut response = ok_resp!(middle.call(req.with_query("keyword=kw1")));

0 commit comments

Comments
 (0)