summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
05caad1)
Browsers's are inconsistent in how they interpret the encoding
of a response header in an XHR request, so URI encode it so that
it simple ASCII we can then decode it again in the browser.
if (xhr.getResponseHeader('X-Page-Title')) {
var title = xhr.getResponseHeader('X-Page-Title');
if (xhr.getResponseHeader('X-Page-Title')) {
var title = xhr.getResponseHeader('X-Page-Title');
- document.title = decodeURIComponent(escape(title));
+ document.title = decodeURIComponent(title);
def set_title(title = false)
if title
@title = TitleHelper.coder.decode(title.gsub("<bdi>", "\u202a").gsub("</bdi>", "\u202c"))
def set_title(title = false)
if title
@title = TitleHelper.coder.decode(title.gsub("<bdi>", "\u202a").gsub("</bdi>", "\u202c"))
- response.headers["X-Page-Title"] = t("layouts.project_name.title") + " | " + @title
+ response.headers["X-Page-Title"] = URI.escape(t("layouts.project_name.title") + " | " + @title)
- response.headers["X-Page-Title"] = t("layouts.project_name.title")
+ response.headers["X-Page-Title"] = URI.escape(t("layouts.project_name.title"))
require "test_helper"
class TitleHelperTest < ActionView::TestCase
require "test_helper"
class TitleHelperTest < ActionView::TestCase
assert_nil @title
set_title("Test Title")
assert_nil @title
set_title("Test Title")
- assert_equal "OpenStreetMap | Test Title", response.header["X-Page-Title"]
+ assert_equal "OpenStreetMap%20%7C%20Test%20Title", response.header["X-Page-Title"]
assert_equal "Test Title", @title
set_title("Test & Title")
assert_equal "Test Title", @title
set_title("Test & Title")
- assert_equal "OpenStreetMap | Test & Title", response.header["X-Page-Title"]
+ assert_equal "OpenStreetMap%20%7C%20Test%20&%20Title", response.header["X-Page-Title"]
assert_equal "Test & Title", @title
assert_equal "Test & Title", @title
+
+ set_title("Tést & Tïtlè")
+ assert_equal "OpenStreetMap%20%7C%20T%C3%A9st%20&%20T%C3%AFtl%C3%A8", response.header["X-Page-Title"]
+ assert_equal "Tést & Tïtlè", @title