aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-11-23 11:21:31 +0200
committerLeif Åstrand <leif@vaadin.com>2012-11-23 11:21:31 +0200
commit7620e3ad01492521ddcc21ca92d6c5f1034bdb3a (patch)
tree3e66952848dabc32d2d4363005f1f2c4a465c9d8
parent1647984d05c5c576c1fe343111c826f3b6c71bc3 (diff)
downloadvaadin-framework-7620e3ad01492521ddcc21ca92d6c5f1034bdb3a.tar.gz
vaadin-framework-7620e3ad01492521ddcc21ca92d6c5f1034bdb3a.zip
Set bootstrap error using innerHTML instead of document.write (#9735)
* Also remove the testbench hook so waitForVaadin can continue * Add automatic test Change-Id: I6a6e53f23af9746f33977dfdb3768870956943f2
-rw-r--r--WebContent/VAADIN/vaadinBootstrap.js17
-rw-r--r--uitest/src/com/vaadin/tests/components/ui/UIInitException.html26
2 files changed, 38 insertions, 5 deletions
diff --git a/WebContent/VAADIN/vaadinBootstrap.js b/WebContent/VAADIN/vaadinBootstrap.js
index 8c6e80a14f..c4617df25c 100644
--- a/WebContent/VAADIN/vaadinBootstrap.js
+++ b/WebContent/VAADIN/vaadinBootstrap.js
@@ -105,9 +105,10 @@
r.open('POST', url, true);
r.onreadystatechange = function (aEvt) {
if (r.readyState == 4) {
+ var text = r.responseText;
if (r.status == 200){
- log("Got root config response", r.responseText);
- var updatedConfig = JSON.parse(r.responseText);
+ log("Got root config response", text);
+ var updatedConfig = JSON.parse(text);
// Copy new properties to the config object
for (var property in updatedConfig) {
@@ -118,10 +119,16 @@
// Try bootstrapping again, this time without fetching missing info
bootstrapApp(false);
- } else if (r.status == 500) {
- document.write(r.responseText);
} else {
- log('Error', r.statusText);
+ log('Error', r.statusText, text);
+
+ //Let TB waitForVaadin work again
+ delete window.vaadin.clients[testbenchId];
+
+ // Show the error in the app's div
+ var appDiv = document.getElementById(appId);
+ appDiv.innerHTML = text;
+ appDiv.style['overflow'] = 'auto';
}
}
};
diff --git a/uitest/src/com/vaadin/tests/components/ui/UIInitException.html b/uitest/src/com/vaadin/tests/components/ui/UIInitException.html
new file mode 100644
index 0000000000..c2b1b33059
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/ui/UIInitException.html
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.ui.UIInitException?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>//html/body/div/pre</td>
+ <td>Catch me if you can</td>
+</tr>
+</tbody></table>
+</body>
+</html>