// written by Bernard Stepien // University of Ottawa // bernard@site.uottawa.ca module WebPagesTesting { type record linkType { charstring text, charstring URL } type set of linkType linkSet; type record WebResponseType { integer statusCode, charstring title, charstring content, linkSet links } type port web_port_type message { out charstring; in WebResponseType } type component MTCType { port web_port_type web_port; } type component SystemType { port web_port_type system_web_port; } template linkSet categoriesPageLinks := { {"Main Page", ?}, {"Category List", ?}, {"Shopping Cart", ?}, {"Contact us", ?}, {"Blues", ?}, {"Jazz", ?}, {"Classical", ?}, {"Opera", ?}, {"Pop", ?}, {"Rock", ?} } template WebResponseType categoriesPageResponse := { statusCode := 200, title := "Category List", content := pattern "*Ideal CD Store*(CSI5380 Project)*", links := categoriesPageLinks } testcase categoriesPageTest() runs on MTCType system SystemType { timer responseTimer; log("mapping ports"); map(mtc:web_port, system:system_web_port); log("ready to send"); //web_port.send("http://137.122.88.254:8080/eStore/categoriesPage"); web_port.send("http://localhost:8080/estore/servlet/Store?action=showCategoryList"); //web_port.send("file://categories_list.html"); responseTimer.start(5.0); alt { [] web_port.receive(categoriesPageResponse) { responseTimer.stop; setverdict(pass) } [] web_port.receive { responseTimer.stop; setverdict(fail) } [] responseTimer.timeout { setverdict(inconc) } } } control { execute(categoriesPageTest()) } }