2009-08-12 11 views
5

Ich habe einen Gurkenschritt, der vor kurzem zu versagen begann, als ein   zu meinem Layout hinzugefügt wurde. Wenn ich die   heraus nehme, gehen meine Tests alle. Als ich es wieder in setzen, jeder Test, der die click_link Methode von webrat geliefert verwendet schlägt mit der folgenden Meldung:Gurke und/oder Webrat hasst  ?

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?

Antwort

5

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 gem vornehmen.

In lib/webrat/core/locators/link_locator.rb musste ich ä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 einen Patch submited Ticket 260 webrat, aber es hat nicht für mich arbeiten, so hatte ich die oben genannten zu tun . Hoffe das hilft.