FIX: Encode percent character in search terms.

This commit is contained in:
Guo Xiang Tan 2015-07-15 09:54:55 +08:00
parent 0eb69398b9
commit 3c25ca2f9f
2 changed files with 15 additions and 2 deletions

View File

@ -1,6 +1,6 @@
import RestAdapter from 'discourse/adapters/rest';
function finderFor(filter, params) {
export function finderFor(filter, params) {
return function() {
let url = Discourse.getURL("/") + filter + ".json";
@ -9,7 +9,7 @@ function finderFor(filter, params) {
encoded = [];
keys.forEach(function(p) {
const value = params[p];
const value = encodeURI(params[p]);
if (typeof value !== 'undefined') {
encoded.push(p + "=" + value);
}

View File

@ -0,0 +1,13 @@
module("adapter:topic-list");
import { finderFor } from 'discourse/adapters/topic-list';
test("finderFor", function() {
// Mocking instead of using a pretender which decodes the path and thus does
// not reflect the behavior of an actual web server.
var mock = sandbox.mock(Discourse);
mock.expects("ajax").withArgs("/search.json?q=test%25%25");
var finderForFunction = finderFor('search', { q: "test%%" });
finderForFunction();
mock.verify();
});