216 lines
7.7 KiB
HTML
216 lines
7.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
<title>MVC DOH Test</title>
|
|
<style>
|
|
@import "../../../dojo/resources/dojo.css";
|
|
@import "./css/dijitTests.css";
|
|
@import "css/app-format.css";
|
|
</style>
|
|
<link id="themeStyles" rel="stylesheet" href="../../../dijit/themes/claro/claro.css"/>
|
|
<script src="../../../dojo/dojo.js" type="text/javascript" djConfig="isDebug: true"></script>
|
|
<script type="text/javascript" src="./helpers.js"></script>
|
|
<script type="text/javascript">
|
|
dojo.require("dojox.mvc");
|
|
dojo.require("dojox.mvc.Group");
|
|
dojo.require("dijit.form.TextBox");
|
|
dojo.require("dijit.form.Button");
|
|
dojo.require("dojo.parser");
|
|
|
|
// Initial data
|
|
var master_init = {
|
|
"Serial" : "360324",
|
|
"First" : "John",
|
|
"Last" : "Doe",
|
|
"Email" : "jdoe@example.com",
|
|
"ShipTo" : {
|
|
"Street" : "123 Valley Rd",
|
|
"City" : "Katonah",
|
|
"State" : "NY",
|
|
"Zip" : "10536"
|
|
},
|
|
"BillTo" : {
|
|
"Street" : "17 Skyline Dr",
|
|
"City" : "Hawthorne",
|
|
"State" : "NY",
|
|
"Zip" : "10532"
|
|
}
|
|
};
|
|
|
|
// The dojox.mvc.StatefulModel class creates a data model instance
|
|
// where each leaf within the data model is decorated with dojo.Stateful
|
|
// properties that widgets can bind to and watch for their changes.
|
|
var masterRecord = dojox.mvc.newStatefulModel({ data : master_init });
|
|
var selectedAddr = dojox.mvc.newStatefulModel({ data : "ShipTo" });
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
dojo.require('doh.runner');
|
|
dojo.require("dijit.dijit"); // optimize: load dijit layer
|
|
dojo.require("dojo.parser"); // scan page for widgets and instantiate them
|
|
|
|
dojo.addOnLoad(function() {
|
|
|
|
doh.register("parse", function() {
|
|
dojo.parser.parse();
|
|
});
|
|
|
|
// should be able to verify all of the inputs
|
|
doh.register("check initial values and bindings", [{
|
|
name : "initial",
|
|
runTest : function() {
|
|
var serial1, bind1, addr1;
|
|
//test serialInput
|
|
serial1 = dijit.byId("serialInput");
|
|
if (serial1) {
|
|
bind1 = serial1.get("binding");
|
|
if (bind1 && bind1.isInstanceOf(dojox.mvc.StatefulModel)) {
|
|
doh.is("360324", bind1.data,"bind1.data should be set");
|
|
doh.is("360324", bind1.value,"bind1.value should be set");
|
|
}
|
|
}
|
|
//test addrLabel
|
|
addr1 = dijit.byId("addrLabel");
|
|
if (addr1) {
|
|
bind1 = addr1.get("binding");
|
|
if (bind1 && bind1.isInstanceOf(dojox.mvc.StatefulModel)) {
|
|
doh.is("ShipTo", bind1.data,"bind1.data should be set");
|
|
doh.is("ShipTo", bind1.value,"bind1.value should be set");
|
|
}
|
|
}
|
|
//test streetInput
|
|
addr1 = dijit.byId("streetInput");
|
|
if (addr1) {
|
|
bind1 = addr1.get("binding");
|
|
if (bind1 && bind1.isInstanceOf(dojox.mvc.StatefulModel)) {
|
|
doh.is("123 Valley Rd", bind1.data,"bind1.data should be set");
|
|
doh.is("123 Valley Rd", bind1.value,"bind1.value should be set");
|
|
}
|
|
}
|
|
}
|
|
}]);
|
|
|
|
doh.register("check BillTo", [{
|
|
name : "testBillTo",
|
|
runTest : function() {
|
|
setRef("addrGroup", masterRecord.BillTo);
|
|
var serial1, bind1, addr1;
|
|
//test serialInput
|
|
serial1 = dijit.byId("serialInput");
|
|
if (serial1) {
|
|
bind1 = serial1.get("binding");
|
|
if (bind1 && bind1.isInstanceOf(dojox.mvc.StatefulModel)) {
|
|
doh.is("360324", bind1.data,"bind1.data should be set");
|
|
doh.is("360324", bind1.value,"bind1.value should be set");
|
|
}
|
|
}
|
|
//test addrLabel
|
|
addr1 = dijit.byId("addrLabel");
|
|
|
|
if (addr1) {
|
|
bind1 = addr1.get("binding");
|
|
if (bind1 && bind1.isInstanceOf(dojox.mvc.StatefulModel)) {
|
|
doh.is("ShipTo", bind1.data,"bind1.data should be set");
|
|
doh.is("BillTo", bind1.value,"bind1.value should be set");
|
|
}
|
|
}
|
|
//test streetInput
|
|
addr1 = dijit.byId("streetInput");
|
|
if (addr1) {
|
|
bind1 = addr1.get("binding");
|
|
if (bind1 && bind1.isInstanceOf(dojox.mvc.StatefulModel)) {
|
|
doh.is("17 Skyline Dr", bind1.data,"bind1.data should be set");
|
|
doh.is("17 Skyline Dr", bind1.value,"bind1.value should be set");
|
|
}
|
|
}
|
|
}
|
|
}]);
|
|
|
|
doh.run();
|
|
|
|
});
|
|
</script>
|
|
</head>
|
|
|
|
|
|
<body class="claro">
|
|
<h1 class="testTitle">doh_mvc__shipto-billto-simple.html automated tests (non-robot)</h1>
|
|
<div id="wrapper">
|
|
<div id="header">
|
|
<div id="navigation"></div>
|
|
<div id="headerInsert">
|
|
<h1>Order Shipping Details</h1>
|
|
<h2>Data Binding Example - Group Container.</h2>
|
|
</div>
|
|
</div>
|
|
<div id="main">
|
|
<div id="leftNav"></div>
|
|
<div id="mainContent"><!--
|
|
The group container denotes some logical grouping of widgets and also serves
|
|
to establish a parent data binding context for its children.
|
|
The ref attribute for the outermost container obtains the binding from the
|
|
"page scope" itself.
|
|
-->
|
|
<div class="row" data-dojo-type="dojox.mvc.Group" data-dojo-props="ref: 'masterRecord'">
|
|
<div class="row"><label class="cell" for="serialInput">Serial:</label>
|
|
<input class="cell" id="serialInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="ref: 'Serial'"/>
|
|
</div>
|
|
<div class="row"><label class="cell" for="lastnameInput">Last:</label>
|
|
<input class="cell" id="lastnameInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="ref: 'Last'"/>
|
|
</div>
|
|
<div class="row"><label class="cell" for="emailInput">Email:</label>
|
|
<input class="cell" id="emailInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="ref: 'Email'"/>
|
|
</div>
|
|
</div>
|
|
<br />
|
|
Choose:
|
|
<button id="shipto1" type="button" data-dojo-type="dijit.form.Button"
|
|
data-dojo-props="onClick: function(){setRef('addrGroup', masterRecord.ShipTo);}">Ship To</button>
|
|
<button id="billto1" type="button" data-dojo-type="dijit.form.Button"
|
|
data-dojo-props="onClick: function(){setRef('addrGroup', masterRecord.BillTo);}">Bill To</button>
|
|
<br />
|
|
<div class="row"><label class="cell" for="addrLabel">Selected
|
|
Address:</label> <input class="cell" data-dojo-type="dijit.form.TextBox"
|
|
id="addrLabel" data-dojo-props="ref: 'selectedAddr'"/></div>
|
|
<br />
|
|
<!--
|
|
For convenience, the widget hierarchy matches the data hierarchy
|
|
(see JSON literal above).
|
|
In this implementation, the child ref attributes are simple property names
|
|
of the parent binding context.
|
|
The ref attribute may support more advanced constructs, such as queries
|
|
over the parent widget's or other application specified binding context.
|
|
-->
|
|
<div class="row" id="addrGroup" data-dojo-type="dojox.mvc.Group"
|
|
data-dojo-props="ref: 'masterRecord.ShipTo'">
|
|
<div class="row"><label class="cell" for="streetInput">Street:</label>
|
|
<input class="cell" id="streetInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="ref: 'Street'"/>
|
|
</div>
|
|
<div class="row"><label class="cell" for="cityInput">City:</label>
|
|
<input class="cell" id="cityInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="ref: 'City'"/>
|
|
</div>
|
|
<div class="row"><label class="cell" for="stateInput">State:</label>
|
|
<input class="cell" id="stateInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="ref: 'State'"/>
|
|
</div>
|
|
<div class="row"><label class="cell" for="zipInput">Zipcode:</label>
|
|
<input class="cell" id="zipInput" data-dojo-type="dijit.form.TextBox" data-dojo-props="ref: 'Zip'"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
function setRef(id, addrRef){
|
|
var widget = dijit.byId(id);
|
|
widget.set("ref", addrRef);
|
|
if(addrRef == "masterRecord.ShipTo"){
|
|
selectedAddr.set("value", "ShipTo");
|
|
}else{
|
|
selectedAddr.set("value", "BillTo");
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|