2009-08-12 12 views
5

Tengo un paso de pepino que recientemente comenzó a fallar cuando se agregó   a mi diseño. Si tomo el  , todas mis pruebas pasan. Cuando me puse de nuevo en cada prueba que utiliza el método click_link suministrada por WebRat falla con el mensaje siguiente:Pepino y/o Webrat odia  ?

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'' 

¿Alguien tiene alguna sugerencia?

Respuesta

5

Tuve el mismo problema en Ruby 1.9 y Rails 2.3.2, para que funcione tengo que hacer los siguientes cambios en la gema webrat.

En lib/webrat/core/locators/link_locator.rb tuve que cambiar:

def replace_nbsp(str) 
    str.gsub([0xA0].pack('U'), ' ') 
end 

a

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 

Hubo también un parche submited a webrat Ticket 260, pero no funcionó para mí, así que tenía que hacer lo anterior . Espero que esto ayude.