I znów problem z testowaniem.
Mam sobie indeks sprzedawców. W tabeli. Każdy z nich ma obok linka “Szczegóły”, który wykonuje połączenie ajaksowe do serwera. Serwer odsyła JSa, który powoduje wyświetlenie okna dialogowego (tego z jQuery, opartego na DIVie). W przeglądarce wszystko działa:
Gdy kliknę w link Szczegóły wykonywane jest żądanie do serwera:
[code]SQL (0.2ms) SET client_min_messages TO ‘panic’
SQL (0.1ms) SET client_min_messages TO ‘notice’
Processing SellersController#show (for 127.0.0.1 at 2009-09-19 18:12:39) [GET]
Parameters: {“id”=>“551”, “_”=>“1253376759365”}
Seller Load (1.0ms) SELECT * FROM “sellers” WHERE (“sellers”.“id” = 551)
Rendering sellers/show
Rendered sellers/show (3.1ms)
Completed in 29ms (View: 5, DB: 1) | 200 OK [http://localhost/sellers/551?=1253376759365][/code]
Natomias z poziomu culerity dzieje się coś dziwnego. “Kliknięcie” w link powoduje zapytanie:
[code]SQL (0.1ms) SET client_min_messages TO ‘panic’
SQL (0.1ms) SET client_min_messages TO ‘notice’
Processing SellersController#show (for 127.0.0.1 at 2009-09-19 18:14:05) [GET]
Parameters: {“id”=>“552”, “_”=>“1253376845712”}
Seller Load (0.6ms) SELECT * FROM “sellers” WHERE (“sellers”.“id” = 552)
Rendering template within layouts/application
Rendering sellers/show
Rendered sellers/_show (2.2ms)
Rendered shared/_menu (0.2ms)
Rendered shared/_context_menu (0.2ms)
Rendered shared/flashes (0.5ms)
Completed in 22ms (View: 8, DB: 1) | 200 OK [http://localhost/sellers/552?=1253376845712][/code]
Patrząc po zapytaniu wygląda tak jakby w przeglądarce był wyłączony JavaScript.
Gdy w kontrolerze zakomentuję linijkę:
[code] def show
@seller = Seller.find(params[:id])
respond_to do |wants|
#wants.html
wants.js
end
end[/code]
i usatwię jedyną metodą zwracanai danych javascript,
to wtedy testy przechodzą.
Wydaje mi się że culerity ignoruje setRequestHeader w jQuery (które ustawiam w application.js) i wysyła swój.
Wie ktoś coś o tym? Wolałbym nie eksperymentować jednak z selenium