dojo.provide("tests.webmap.widget._ButtonControl");

dojo.require("doh.runner");
dojo.require("webmap.widget._ButtonControl");
dojo.require("tests.Util");

doh.register("tests.webmap.widget._ButtonControl", 
	[
	
		{
			name: "postCreate",
			widget: null,
			connect: dojo.connect,
			connects: [],
			setSelectable: dojo.setSelectable,
			selectArgs: [],
			call: webmap.widget._ButtonControl.superclass.postCreate.call,
			setUp: function(){
				tests.Util.resetDom();
				var _this = this;
				dojo.connect = function(a0,a1,a2,a3){
					_this.connects.push([a0,a1,a2,a3]);
				};
				dojo.setSelectable = function(a0,a1){
					_this.selectArgs.push([a0,a1]);
				}
				var div = document.createElement("div");
				document.body.appendChild(div);
				this.widget = new webmap.widget._ButtonControl({
					templateString: '<div><span dojoAttachPoint="titleNode"></span><img id="img1"/><img id="img2"/><img id="img3"/></div>',
					title: "title"
				}, div);
			},
			runTest: function(){
				tests.assertEqual("title", this.widget.titleNode.innerHTML);
				tests.assertEqual([
					[dojo.byId("img1"),"onmouseover",this.widget,"_doMouseOver"],
					[dojo.byId("img1"),"onmouseout",this.widget,"_doMouseOut"],
					[dojo.byId("img1"),"onclick",this.widget,"_doClick"],
					[dojo.byId("img2"),"onmouseover",this.widget,"_doMouseOver"],
					[dojo.byId("img2"),"onmouseout",this.widget,"_doMouseOut"],
					[dojo.byId("img2"),"onclick",this.widget,"_doClick"],
					[dojo.byId("img3"),"onmouseover",this.widget,"_doMouseOver"],
					[dojo.byId("img3"),"onmouseout",this.widget,"_doMouseOut"],
					[dojo.byId("img3"),"onclick",this.widget,"_doClick"]]
					,this.connects);
				tests.assertEqual([[this.widget.domNode,false]],this.selectArgs);
				tests.assertEqual([dojo.byId("img1"),dojo.byId("img2"),dojo.byId("img3")],this.widget.buttons);
			},
			tearDown: function(){
				dojo.setSelectable = this.setSelectable;
				dojo.connect = this.connect;
				webmap.widget._ButtonControl.superclass.postCreate.call = this.call;
				this.widget.destroy();
			}
		}
	]
);