Improve output: distinguish between failed assertions (failures) and unexpected exceptions (errors), and print a filtered stack trace for any exception.

This commit is contained in:
jeb228 2010-01-29 22:13:57 +00:00
commit 4f2e303079
1839 changed files with 235630 additions and 0 deletions

View file

@ -0,0 +1,107 @@
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.demoEngine.DemoContainer");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.HtmlWidget");
dojo.require("dojo.widget.demoEngine.DemoPane");
dojo.require("dojo.widget.demoEngine.SourcePane");
dojo.require("dojo.widget.TabContainer");
dojo.widget.defineWidget("my.widget.demoEngine.DemoContainer",
dojo.widget.HtmlWidget,
{
templatePath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoContainer.html"),
templateCssPath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoContainer.css"),
postCreate: function() {
dojo.html.addClass(this.domNode,this.domNodeClass);
dojo.html.addClass(this.tabNode, this.tabClass);
dojo.html.addClass(this.returnImageNode, this.returnClass);
this.returnImageNode.src=this.returnImage;
this.tabContainer = dojo.widget.createWidget("TabContainer",{},this.tabNode);
this.demoTab = dojo.widget.createWidget("DemoPane",{});
this.tabContainer.addChild(this.demoTab);
this.sourceTab= dojo.widget.createWidget("SourcePane",{});
this.tabContainer.addChild(this.sourceTab);
dojo.html.setOpacity(this.domNode,0);
dojo.html.hide(this.domNode);
},
loadDemo: function(url) {
this.demoTab.setHref(url);
this.sourceTab.setHref(url);
this.showDemo();
},
setName: function(name) {
dojo.html.removeChildren(this.demoNameNode);
this.demoNameNode.appendChild(document.createTextNode(name));
},
setSummary: function(summary) {
dojo.html.removeChildren(this.summaryNode);
this.summaryNode.appendChild(document.createTextNode(summary));
},
showSource: function() {
dojo.html.removeClass(this.demoButtonNode,this.selectedButtonClass);
dojo.html.addClass(this.sourceButtonNode,this.selectedButtonClass);
this.tabContainer.selectTab(this.sourceTab);
},
showDemo: function() {
dojo.html.removeClass(this.sourceButtonNode,this.selectedButtonClass);
dojo.html.addClass(this.demoButtonNode,this.selectedButtonClass);
this.tabContainer.selectTab(this.demoTab);
},
returnToDemos: function() {
dojo.debug("Return To Demos");
},
show: function() {
dojo.html.setOpacity(this.domNode,1);
dojo.html.show(this.domNode);
this.tabContainer.checkSize();
}
},
"",
function() {
dojo.debug("DemoPane Init");
this.domNodeClass="demoContainer";
this.tabContainer="";
this.sourceTab="";
this.demoTab="";
this.headerNode="";
this.returnNode="";
this.returnImageNode="";
this.returnImage="images/dojoDemos.gif";
this.returnClass="return";
this.summaryNode="";
this.demoNameNode="";
this.tabControlNode="";
this.tabNode="";
this.tabClass = "demoContainerTabs";
this.sourceButtonNode="";
this.demoButtonNode="";
this.selectedButtonClass="selected";
}
);

View file

@ -0,0 +1,71 @@
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.demoEngine.DemoItem");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.HtmlWidget");
dojo.widget.defineWidget("my.widget.demoEngine.DemoItem",
dojo.widget.HtmlWidget,
{
templatePath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoItem.html"),
templateCssPath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoItem.css"),
postCreate: function() {
dojo.html.addClass(this.domNode,this.domNodeClass);
dojo.html.addClass(this.summaryBoxNode, this.summaryBoxClass);
dojo.html.addClass(this.screenshotTdNode, this.screenshotTdClass);
dojo.html.addClass(this.summaryContainerNode, this.summaryContainerClass);
dojo.html.addClass(this.summaryNode, this.summaryClass);
dojo.html.addClass(this.viewDemoLinkNode, this.viewDemoLinkClass);
this.nameNode.appendChild(document.createTextNode(this.name));
this.descriptionNode.appendChild(document.createTextNode(this.description));
this.thumbnailImageNode.src = this.thumbnail;
this.thumbnailImageNode.name=this.name;
this.viewDemoImageNode.src = this.viewDemoImage;
this.viewDemoImageNode.name=this.name;
},
onSelectDemo: function() {
//Attach to this to do something when a demo is selected
}
},
"",
function() {
this.demo = "";
this.domNodeClass="demoItemWrapper";
this.summaryBoxNode="";
this.summaryBoxClass="demoItemSummaryBox";
this.nameNode="";
this.thumbnailImageNode="";
this.viewDemoImageNode="";
this.screenshotTdNode="";
this.screenshotTdClass="demoItemScreenshot";
this.summaryContainerNode="";
this.summaryContainerClass="demoItemSummaryContainer";
this.summaryNode="";
this.summaryClass="demoItemSummary";
this.viewDemoLinkNode="";
this.viewDemoLinkClass="demoItemView";
this.descriptionNode="";
this.name="Some Demo";
this.description="This is the description of this demo.";
this.thumbnail="images/test_thumb.gif";
this.viewDemoImage="images/viewDemo.png";
}
);

View file

@ -0,0 +1,188 @@
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.demoEngine.DemoNavigator");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.HtmlWidget");
dojo.require("dojo.widget.Button");
dojo.require("dojo.widget.demoEngine.DemoItem");
dojo.require("dojo.io.*");
dojo.require("dojo.lfx.*");
dojo.require("dojo.lang.Common");
dojo.widget.defineWidget("my.widget.demoEngine.DemoNavigator",
dojo.widget.HtmlWidget,
{
templatePath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoNavigator.html"),
templateCssPath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoNavigator.css"),
postCreate: function() {
dojo.html.addClass(this.domNode,this.domNodeClass);
dojo.html.addClass(this.demoListWrapperNode,this.demoListWrapperClass);
dojo.html.addClass(this.demoListContainerNode,this.demoListContainerClass);
if (dojo.render.html.ie) {
dojo.debug("render ie");
dojo.html.hide(this.demoListWrapperNode);
} else {
dojo.debug("render non-ie");
dojo.lfx.html.fadeHide(this.demoListWrapperNode, 0).play();
}
this.getRegistry(this.demoRegistryUrl);
this.demoContainer = dojo.widget.createWidget("DemoContainer",{returnImage: this.returnImage},this.demoNode);
dojo.event.connect(this.demoContainer,"returnToDemos", this, "returnToDemos");
this.demoContainer.hide();
},
returnToDemos: function() {
this.demoContainer.hide();
if (dojo.render.html.ie) {
dojo.debug("render ie");
dojo.html.show(this.navigationContainer) ;
} else {
dojo.debug("render non-ie");
dojo.lfx.html.fadeShow(this.navigationContainer,250).play();
}
//if (dojo.render.html.ie) {
// dojo.html.setOpacity(this.navigationContainer);
//}
dojo.lang.forEach(this.categoriesChildren, dojo.lang.hitch(this, function(child){
child.checkSize();
}));
dojo.lang.forEach(this.demoListChildren, dojo.lang.hitch(this, function(child){
child.checkSize();
}));
},
show: function() {
//dojo.widget.demoEngine.DemoNavigator.superclass.show.call(this);
dojo.html.show(this.domNode);
dojo.html.setOpacity(this.domNode,1);
//dojo.html.setOpacity(this.navigationContainer);
//dojo.html.show(this.navigationContainer);
dojo.html.setOpacity(this.navigationContainer,1);
dojo.lang.forEach(this.categoriesChildren, dojo.lang.hitch(this, function(child){
child.checkSize();
}));
dojo.lang.forEach(this.demoListChildren, dojo.lang.hitch(this, function(child){
child.checkSize();
}));
},
getRegistry: function(url) {
dojo.io.bind({
url: url,
load: dojo.lang.hitch(this,this.processRegistry),
mimetype: "text/json"
});
},
processRegistry: function(type,registry,e) {
dojo.debug("Processing Registry");
this.registry = registry;
dojo.lang.forEach(this.registry.navigation, dojo.lang.hitch(this,this.addCategory));
},
addCategory: function(category) {
var newCat = dojo.widget.createWidget("Button",{caption: category.name});
if(!dojo.lang.isObject(this.registry.categories)) {
this.registry.categories=function(){};
}
this.registry.categories[category.name] = category;
this.categoriesChildren.push(newCat);
this.categoriesButtonsNode.appendChild(newCat.domNode);
newCat.domNode.categoryName = category.name;
dojo.event.connect(newCat,"onClick", this, "onSelectCategory");
},
addDemo: function(demoName) {
var demo = this.registry.definitions[demoName];
if (dojo.render.html.ie) {
dojo.html.show(this.demoListWrapperNode)
} else {
dojo.lfx.html.fadeShow(this.demoListWrapperNode, 250).play();
}
var newDemo = dojo.widget.createWidget("DemoItem",{viewDemoImage: this.viewDemoImage, name: demoName, description: demo.description, thumbnail: demo.thumbnail});
this.demoListChildren.push(newDemo);
this.demoListContainerNode.appendChild(newDemo.domNode);
dojo.event.connect(newDemo,"onSelectDemo",this,"onSelectDemo");
},
onSelectCategory: function(e) {
catName = e.currentTarget.categoryName;
dojo.debug("Selected Category: " + catName);
//Remove current list of demos
dojo.lang.forEach(this.demoListChildren, function(child) {
child.destroy();
});
this.demoListChildren=[];
//add demos from this cat
dojo.lang.forEach(this.registry.categories[catName].demos, dojo.lang.hitch(this,function(demoName){
this.addDemo(demoName);
}));
},
onSelectDemo: function(e) {
//Attach to this to do something when a demo is selected
dojo.debug("Demo Selected: " + e.target.name);
if (dojo.render.html.ie) {
dojo.debug("render ie");
dojo.html.hide(this.navigationContainer) ;
this.demoContainer.show();
this.demoContainer.showDemo();
} else {
dojo.debug("render non-ie");
dojo.lfx.html.fadeHide(this.navigationContainer,250,null,dojo.lang.hitch(this, function() {
this.demoContainer.show();
this.demoContainer.showDemo();
})).play();
}
this.demoContainer.loadDemo(this.registry.definitions[e.target.name].url);
this.demoContainer.setName(e.target.name);
this.demoContainer.setSummary(this.registry.definitions[e.target.name].description);
}
},
"",
function() {
this.demoRegistryUrl="demoRegistry.json";
this.registry=function(){};
this.categoriesNode="";
this.categoriesButtonsNode="";
this.navigationContainer="";
this.domNodeClass="demoNavigator";
this.demoNode="";
this.demoContainer="";
this.demoListWrapperNode="";
this.demoListWrapperClass="demoNavigatorListWrapper";
this.demoListContainerClass="demoNavigatorListContainer";
this.returnImage="images/dojoDemos.gif";
this.viewDemoImage="images/viewDemo.png";
this.demoListChildren = [];
this.categoriesChildren = [];
}
);

View file

@ -0,0 +1,44 @@
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.demoEngine.DemoPane");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.HtmlWidget");
dojo.widget.defineWidget("my.widget.demoEngine.DemoPane",
dojo.widget.HtmlWidget,
{
templatePath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoPane.html"),
templateCssPath: dojo.uri.dojoUri("src/widget/demoEngine/templates/DemoPane.css"),
postCreate: function() {
dojo.html.addClass(this.domNode,this.domNodeClass);
dojo.debug("PostCreate");
this._launchDemo();
},
_launchDemo: function() {
dojo.debug("Launching Demo");
dojo.debug(this.demoNode);
this.demoNode.src=this.href;
},
setHref: function(url) {
this.href = url;
this._launchDemo();
}
},
"",
function() {
dojo.debug("DemoPane Init");
this.domNodeClass="demoPane";
this.demoNode = "";
this.href = "";
}
);

View file

@ -0,0 +1,52 @@
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.demoEngine.SourcePane");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.HtmlWidget");
dojo.require("dojo.io.*");
dojo.widget.defineWidget("my.widget.demoEngine.SourcePane",
dojo.widget.HtmlWidget,
{
templatePath: dojo.uri.dojoUri("src/widget/demoEngine/templates/SourcePane.html"),
templateCssPath: dojo.uri.dojoUri("src/widget/demoEngine/templates/SourcePane.css"),
postCreate: function() {
dojo.html.addClass(this.domNode,this.domNodeClass);
dojo.debug("PostCreate");
},
getSource: function() {
if (this.href) {
dojo.io.bind({
url: this.href,
load: dojo.lang.hitch(this, "fillInSource"),
mimetype: "text/plain"
});
}
},
fillInSource: function(type, source, e) {
this.sourceNode.value=source;
},
setHref: function(url) {
this.href = url;
this.getSource();
}
},
"",
function() {
dojo.debug("SourcePane Init");
this.domNodeClass="sourcePane";
this.sourceNode = "";
this.href = "";
}
);

View file

@ -0,0 +1,20 @@
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.kwCompoundRequire({
browser: [
"dojo.widget.demoEngine.DemoItem",
"dojo.widget.demoEngine.DemoNavigator",
"dojo.widget.demoEngine.DemoPane",
"dojo.widget.demoEngine.SourcePane",
"dojo.widget.demoEngine.DemoContainer"
]
});
dojo.provide("dojo.widget.demoEngine.*");

View file

@ -0,0 +1,39 @@
.demoContainer{
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
}
.demoContainer .return {
cursor: pointer;
}
.demoContainer span {
margin-right: 10px;
cursor: pointer;
}
.demoContainer .selected {
border-bottom: 5px solid #95bfff;
}
.demoContainer table {
background: #f5f5f5;
width: 100%;
height: 100%;
}
.demoContainerTabs {
width: 100%;
height: 400px;
}
.demoContainerTabs .dojoTabLabels-top {
display: none;
}
.demoContainerTabs .dojoTabPaneWrapper {
border: 0px;
}

View file

@ -0,0 +1,25 @@
<div dojoAttachPoint="domNode">
<table width="100%" cellspacing="0" cellpadding="5">
<tbody>
<tr dojoAttachPoint="headerNode">
<td dojoAttachPoint="returnNode" valign="middle" width="1%">
<img dojoAttachPoint="returnImageNode" dojoAttachEvent="onclick: returnToDemos"/>
</td>
<td>
<h1 dojoAttachPoint="demoNameNode"></h1>
<p dojoAttachPoint="summaryNode"></p>
</td>
<td dojoAttachPoint="tabControlNode" valign="middle" align="right" nowrap>
<span dojoAttachPoint="sourceButtonNode" dojoAttachEvent="onclick: showSource">source</span>
<span dojoAttachPoint="demoButtonNode" dojoAttachEvent="onclick: showDemo">demo</span>
</td>
</tr>
<tr>
<td colspan="3">
<div dojoAttachPoint="tabNode">
</div>
</td>
</tr>
</tbody>
</table>
</div>

View file

@ -0,0 +1,58 @@
.demoItemSummaryBox {
background: #efefef;
border:1px solid #dae3ee;
}
.demoItemScreenshot {
padding:0.65em;
width:175px;
border-right:1px solid #fafafa;
text-align:center;
cursor: pointer;
}
.demoItemWrapper{
margin-bottom:1em;
}
.demoItemWrapper a:link, .demoItemWrapper a:visited {
color:#a6238f;
text-decoration:none;
}
.demoItemSummaryContainer {
border-left:1px solid #ddd;
}
.demoItemSummaryContainer h1 {
background-color:#e8e8e8;
border-bottom: 1px solid #e6e6e6;
color:#738fb9;
margin:1px;
padding:0.5em;
font-family:"Lucida Grande", "Tahoma", serif;
font-size:1.25em;
font-weight:normal;
}
.demoItemSummaryContainer h1 .packageSummary {
display:block;
color:#000;
font-size:10px;
margin-top:2px;
}
.demoItemSummaryContainer .demoItemSummary{
padding:1em;
}
.demoItemSummaryContainer .demoItemSummary p {
font-size:0.85em;
padding:0;
margin:0;
}
.demoItemView {
text-align:right;
cursor: pointer;
}

View file

@ -0,0 +1,21 @@
<div dojoAttachPoint="domNode">
<div dojoAttachPoint="summaryBoxNode">
<table width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td dojoAttachPoint="screenshotTdNode" valign="top" width="1%">
<img dojoAttachPoint="thumbnailImageNode" dojoAttachEvent="onclick: onSelectDemo" />
</td>
<td dojoAttachPoint="summaryContainerNode" valign="top">
<h1 dojoAttachPoint="nameNode">
</h1>
<div dojoAttachPoint="summaryNode">
<p dojoAttachPoint="descriptionNode"></p>
<div dojoAttachPoint="viewDemoLinkNode"><img dojoAttachPoint="viewDemoImageNode"/ dojoAttachEvent="onclick: onSelectDemo"></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>

View file

@ -0,0 +1,28 @@
.demoNavigatorListWrapper {
border:1px solid #dcdbdb;
background-color:#f8f8f8;
padding:2px;
}
.demoNavigatorListContainer {
border:1px solid #f0f0f0;
background-color:#fff;
padding:1em;
}
.demoNavigator h1 {
margin-top: 0px;
margin-bottom: 10px;
font-size: 1.2em;
border-bottom:1px dotted #a9ccf5;
}
.demoNavigator .dojoButton {
margin-bottom: 5px;
}
.demoNavigator .dojoButton .dojoButtonContents {
font-size: 1.1em;
width: 100px;
color: black;
}

View file

@ -0,0 +1,24 @@
<div dojoAttachPoint="domNode">
<table width="100%" cellspacing="0" cellpadding="5">
<tbody>
<tr dojoAttachPoint="navigationContainer">
<td dojoAttachPoint="categoriesNode" valign="top" width="1%">
<h1>Categories</h1>
<div dojoAttachPoint="categoriesButtonsNode"></div>
</td>
<td dojoAttachPoint="demoListNode" valign="top">
<div dojoAttachPoint="demoListWrapperNode">
<div dojoAttachPoint="demoListContainerNode">
</div>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div dojoAttachPoint="demoNode"></div>
</td>
</tr>
</tbody>
</table>
</div>

View file

@ -0,0 +1,18 @@
.demoPane {
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
overflow: hidden;
}
.demoPane iframe {
width: 100%;
height: 100%;
border: 0px;
border: none;
overflow: auto;
padding: 0px;
margin:0px;
background: #ffffff;
}

View file

@ -0,0 +1,3 @@
<div dojoAttachPoint="domNode">
<iframe dojoAttachPoint="demoNode"></iframe>
</div>

View file

@ -0,0 +1,20 @@
.sourcePane {
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
overflow: hidden;
}
.sourcePane textarea{
width: 100%;
height: 100%;
border: 0px;
overflow: auto;
padding: 0px;
margin:0px;
}
* html .sourcePane {
overflow: auto;
}

View file

@ -0,0 +1,3 @@
<div dojoAttachPoint="domNode">
<textarea dojoAttachPoint="sourceNode" rows="100%"></textarea>
</div>

View file

@ -0,0 +1,73 @@
.demoListWrapper {
border:1px solid #dcdbdb;
background-color:#f8f8f8;
padding:2px;
}
.demoListContainer {
border:1px solid #f0f0f0;
background-color:#fff;
padding:1em;
}
.demoSummaryBox {
background: #efefef;
border:1px solid #dae3ee;
}
.screenshot {
padding:0.65em;
width:175px;
border-right:1px solid #fafafa;
text-align:center;
}
.demoSummary {
margin-bottom:1em;
}
.demoSummary a:link, .demoSummary a:visited {
color:#a6238f;
text-decoration:none;
}
.summaryContainer {
border-left:1px solid #ddd;
}
.summaryContainer h1 {
background-color:#e8e8e8;
border-bottom: 1px solid #e6e6e6;
color:#738fb9;
margin:1px;
padding:0.5em;
font-family:"Lucida Grande", "Tahoma", serif;
font-size:1.25em;
font-weight:normal;
}
.summaryContainer h1 .packageSummary {
display:block;
color:#000;
font-size:10px;
margin-top:2px;
}
.summaryContainer .summary {
padding:1em;
}
.summaryContainer .summary p {
font-size:0.85em;
padding:0;
margin:0;
}
.reflection {
background: url("images/demoBoxReflection.gif") repeat-x top left;
height:25px;
}
.view {
text-align:right;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B