",sondage.status("127.0.0.1"))
# Erreur HTTP pour GET /
http = Net::HTTP.new(addr, port)
requete = Net::HTTP::Get.new("/")
http.request(requete){|reponse| assert_equal("404", reponse.code)}
# Réponse 200 OK pour GET /sondage/
requete = Net::HTTP::Get.new("/sondage/")
http.request(requete){|reponse| assert_equal("200", reponse.code)}
# Contenu page pour GET /sondage/
re = %r|
Module S4RES - Service Sondage - v1.0
Module S4RES
Vous avez jusqu'ici trouvé les TPs \.\.\.\?
difficiles : 0 vote\(s\)
faciles : 0 vote\(s\)
ni l'un ni l'autre : 0 vote\(s\)
Fin de la consultation prévue le [^<]+
Il vous reste [0-9.]+ secondes pour voter
Service Sondage - v1.0
|m
requete = Net::HTTP::Get.new("/sondage/")
5.times {
http.request(requete){|reponse| assert_match(re,reponse.body)}
}
# Réponse 200 OK pour GET /sondage/pub/sondage.ico
reponse, data = http.get('/sondage/pub/sondage.ico', nil )
assert_equal("200", reponse.code)
# Réponse 304 Not Modified pour GET /sondage/pub/sondage.ico Conditionnel
params = {'If-Modified-Since' => reponse['Last-Modified']}
reponse, data = http.get('/sondage/pub/sondage.ico', params )
assert_equal("304", reponse.code)
# Votes depuis la même machine
votes = [["oui",[1,0,0]],["non",[0,1,0]],["bof",[0,0,1]]]
requete = Net::HTTP::Get.new("/sondage/")
(votes + votes).each {|vote,nbs|
params = "reponse=#{vote}"
reponse,body = http.post("/sondage/", params)
assert_equal("302",reponse.code)
re = %r|difficiles : #{nbs[0]} vote\(s\)
faciles : #{nbs[1]} vote\(s\)
ni l'un ni l'autre : #{nbs[2]} vote\(s\)|
http.request(requete){|reponse| assert_match(re,reponse.body)}
}
# Modifications paramètres
admins = [["titre"," NouVEAu TiTRe","
NouVEAu TiTRe"],
["question"," NouvELLe QuEsTiON ","
NouvELLe QuEsTiON "],
["datefin","30",/Il vous reste 28[0-9.]+/]]
(admins + admins).each {|param,val,re|
params = "#{param}=#{val}"
reponse,body = http.post("/sondage/", params)
sleep(1)
http.request(requete){|reponse| assert_match(re,reponse.body)}
}
# Arrêt du service
sondage.stop
# Retour status("1.2.3.4")
assert_equal("