FIX: Encode percent character in search terms.
This commit is contained in:
parent
0eb69398b9
commit
3c25ca2f9f
|
@ -1,6 +1,6 @@
|
||||||
import RestAdapter from 'discourse/adapters/rest';
|
import RestAdapter from 'discourse/adapters/rest';
|
||||||
|
|
||||||
function finderFor(filter, params) {
|
export function finderFor(filter, params) {
|
||||||
return function() {
|
return function() {
|
||||||
let url = Discourse.getURL("/") + filter + ".json";
|
let url = Discourse.getURL("/") + filter + ".json";
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ function finderFor(filter, params) {
|
||||||
encoded = [];
|
encoded = [];
|
||||||
|
|
||||||
keys.forEach(function(p) {
|
keys.forEach(function(p) {
|
||||||
const value = params[p];
|
const value = encodeURI(params[p]);
|
||||||
if (typeof value !== 'undefined') {
|
if (typeof value !== 'undefined') {
|
||||||
encoded.push(p + "=" + value);
|
encoded.push(p + "=" + value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
});
|
Loading…
Reference in New Issue