Regulní výraz pro flash zprávy | mrtnzlml/testbench
- Iva Phamová
- Člen | 6
Přeji krásný sluníčkový den.
Při brouzdání a pročítání článků na tomto fóru jsem narazila na
rozšíření pro nette tester a to mrtnzlml/testbench.
Zkusila jsem si otestovat formulář pro přihlašování uživatelů
s následujícím kódem.
$this->checkForm('Sign:in', 'login', [data v mětodě post], 'sem nevím, co napsat');
Jelikož nejsem ještě tolik zběhlá v PHP, tak mi dělá problém napsat
regulární výraz pro url, kterou generuje nette pro flash zprávy.
Zkoušela jsem tam hodit nějaký svůj výtvor, ale bez úspěchu.
(/[=?_a-zA-Z0–9]+)
Redirect má být normálně na Homepage:default, což funguje. V phpstormu mi
to vyhazuje následující chybu.
Failed: path '/[=?_a-zA-Z0-9]+' doesn't match
'http://localeshop.cz/?_fid=o0ZK'
after redirect in testSignInForm()
Mohla bych váš poprosit, jestli byste mi napsali ten regulární výraz, co
tam mám napsat?
Děkuji moc!
- Iva
Editoval Iva Phamová (6. 8. 2017 17:37)
- Iva Phamová
- Člen | 6
Díky moc za odpověď, ale bohužel mi to nefunguje :(
Opět vyskočí chybová hláška:
Failed: path '/\?_fid=[a-zA-Z0-9]+' doesn't match
'http://localeshop.cz/?_fid=nk3p'
after redirect in testSignInForm()
Editoval Iva Phamová (6. 8. 2017 23:09)
- Iva Phamová
- Člen | 6
Popřípadě čím testujete třeba formuláře? Našla jsem na internetu tuhle knihovnu , ale nevím,
zda je to ta správná volba.
Opravdu bych potřebovala začít psát ty testy.
Editoval Iva Phamová (7. 8. 2017 9:06)
- matopeto
- Člen | 395
Je nutne testovat vobec to presmerovanie az do urovne kontroly fidu? podla mna nie :)
regex bohuzial nejde preto lebo path je prazdna pripadne /
a to
ostatne je query, co ten framework nekontroluje.
Takze zadaj iba:
$this->checkForm('Sign:in', 'login', [data v mětodě post]);
Editoval matopeto (7. 8. 2017 9:45)
- Iva Phamová
- Člen | 6
Nechala jsem to bez toho posledního parametru a stejně to neprojde :/
Failed: path '/' doesn't match
'http://localeshop.cz/?_fid=5slq'
after redirect in testSignInForm()
- Tharos
- Člen | 1030
Chtělo by ve tvém projektu nastavit breakpoint debuggeru na tento řádek a podívat se, co přesně za hodnoty tam přijde.
Je to totiž takové trochu zvláštní, protože když si vydestiluji bokem tohle, tak to funguje podle očekávání:
$url = 'http://test.bench/?_fid=nk3p';
$path = '/\?_fid=[a-zA-Z0-9]+';
var_dump(\Tester\Assert::isMatching("~^https?://test\.bench{$path}(?(?=\?).+)$~", $url));
// bool(true)
Chtěl jsem si tu tvou chybku nasimulovat lokálně, ale když jsem
nainstaloval přes Composer aktuální nette/web-project
, tak ten
si s mrtnzlml/testbench
bohužel nerozumí…
Problem 1
- mrtnzlml/testbench v2.4.2 requires nette/tester 2.0.x-dev as v1.7 -> satisfiable by nette/tester[2.0.x-dev] but these conflict with your requirements or minimum-stability.
- mrtnzlml/testbench v2.4.1 requires nette/tester 2.0.x-dev as v1.7 -> satisfiable by nette/tester[2.0.x-dev] but these conflict with your requirements or minimum-stability.
- mrtnzlml/testbench v2.4 requires nette/tester 2.0.x-dev as v1.7 -> satisfiable by nette/tester[2.0.x-dev] but these conflict with your requirements or minimum-stability.
- Installation request for mrtnzlml/testbench ^2.4 -> satisfiable by mrtnzlml/testbench[v2.4, v2.4.1, v2.4.2].
- Iva Phamová
- Člen | 6
Aha … tak už vím kde byla chyba. Opravdu v té konfiguraci :/
Moc se tedy omlouvám za zrdžení, ale myslela jsem si, že si mám
přepsat to
testbench:
url: http://test.bench
na url, na které mi běží ten web.
Díky moc za rady.