Gurke und/oder Webrat hasst & nbsp;?
-
13-09-2019 - |
Frage
Ich habe einen Gurkenschritt, der kürzlich fehlgeschlagen begann, wenn eine
wurde zu meinem Layout hinzugefügt. Wenn ich das nehme
Ich habe alle bestehen. Wenn ich es wieder einsetzt, schlägt jeder Test, der die von Webrat bereitgestellte Click_Link -Methode verwendet, mit der folgenden Nachricht fehl:
And he follows 'Unsubscribe'
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)
(eval):3:in `click_link`
(eval):2:in `click_link`
/path_to_project/webrat_steps.rb:19:in `/^(I|he|she) follows? '([^\"]*)'$/'
features/manage_subscriptions.feature:59:in `And he follows 'Unsubscribe''
Hat jemand irgendwelche Vorschläge?
Lösung
Ich hatte das gleiche Problem unter Ruby 1.9 und Rails 2.3.2, um es zum Laufen zu bringen, musste ich die folgenden Änderungen im Webrat -Edelstein vornehmen.
Im lib/webrat/core/locators/link_locator.rb
Ich musste mich ändern:
def replace_nbsp(str)
str.gsub([0xA0].pack('U'), ' ')
end
zu
def replace_nbsp(str)
if str.respond_to?(:valid_encoding?)
str.force_encoding('UTF-8').gsub(/\xc2\xa0/u, ' ')
else
str.gsub(/\xc2\xa0/u, ' ')
end
end
Es gab auch ein Patch, der Webrat eingereicht hat Ticket 260, aber es hat bei mir nicht funktioniert, also musste ich das oben genannte tun. Hoffe das hilft.