offline-editor-js/test/SpecRunner.offlineAttachments.html
2015-11-23 11:35:35 -07:00

204 lines
6.4 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Spec Runner - Offline Attachments</title>
<link rel="shortcut icon" type="image/png" href="../vendor/jasmine-1.3.1/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="../vendor/jasmine-1.3.1/jasmine.css">
<script type="text/javascript" src="../vendor/jasmine-1.3.1/jasmine.js"></script>
<script type="text/javascript" src="../vendor/jasmine-1.3.1/jasmine-html.js"></script>
<script type="text/javascript" src="../vendor/jasmine.async/lib/jasmine.async.js"></script>
<script>
var dojoConfig = {
paths: {
edit: location.pathname.replace(/\/[^/]+$/, "") + "../../lib/edit",
vendor: location.pathname.replace(/\/[^/]+$/, "") + "../../vendor"
}
}
</script>
<link rel="stylesheet" href="http://js.arcgis.com/3.13/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://js.arcgis.com/3.13/esri/css/esri.css">
<script src="http://js.arcgis.com/3.13/"></script>
<script src="//github.hubspot.com/offline/offline.min.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/offlineAttachmentsSpec.js"></script>
<script type="text/javascript">
var g_map;
var g_featureLayers = [];
var g_featureLayer = null;
var g_offlineEdit;
var g_modules = {};
var g_editsStore;
var g_formNode, g_formData, g_formData2, g_formNode2;
require(["esri/map",
"esri/layers/GraphicsLayer", "esri/graphic",
"esri/layers/FeatureLayer", "esri/geometry", "esri/request",
"dojo/dom", "dojo/on", "dojo/query",
"dojo/dom-construct",
"../dist/offline-edit-advanced-src.js",
"dojo/domReady!"],
function(Map,
GraphicsLayer, Graphic,
FeatureLayer, geometry, esriRequest,
dom, on, query,
domConstruct)
{
g_modules.esriRequest = esriRequest;
g_modules.Graphic = Graphic;
g_offlineEdit = new O.esri.Edit.OfflineEditAdvanced();
g_offlineEdit.DB_UID = "OBJECTID";
g_editsStore = new O.esri.Edit.EditStore();
g_offlineEdit.initAttachments(function(success)
{
console.log("attachments inited", success);
});
var form = dom.byId('theForm');
on(dom.byId('theFile'),'change',test);
g_map = new Map("map", {
basemap: "topo",
center: [-0.90, 41.64],
zoom: 5,//9
sliderStyle: "small"
});
var fsUrl = "http://services2.arcgis.com/CQWCKwrSm5dkM28A/arcgis/rest/services/Military/FeatureServer/3";
var fsUrl2 = "http://services1.arcgis.com/M8KJPUwAXP8jhtnM/arcgis/rest/services/Simple_Point_Service/FeatureServer/0";
// var layersIds = [0,1,2,3,4,5,6];
// var layersIds = [1,2,3,6];
g_featureLayer = new FeatureLayer(fsUrl2, {
mode: FeatureLayer.MODE_SNAPSHOT,
outFields: ['*']
});
g_map.on('layers-add-result', function(evt){
console.log("layers ready");
});
g_map.addLayers([g_featureLayer]);
function test()
{
g_offlineEdit.extend(g_featureLayer,function(success,message){
if(!success){
alert("There was a problem extending the layer: " + layer);
}
});
try
{
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
jasmineEnv.defaultTimeoutInterval = 10000; // 10 sec
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
/*
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
};
*/
function execJasmine() {
jasmineEnv.execute();
}
// execJasmine();
// on(dom.byId('theFile'),'change',execJasmine);
function retrieveFile(){
var xhr = new XMLHttpRequest();
xhr.open("GET","images/blue-pin.png",true);
xhr.responseType = "blob";
xhr.onload = function()
{
if( xhr.status === 200)
{
var blob = new Blob([this.response],{type: this.response.type});
var parts = [blob,"test", new ArrayBuffer(blob.size)];
var files = [];
var file = new File(parts,"blue-pin.png",{
lastModified: new Date(0),
type: this.response.type
});
files.push(file);
// Fake a form node for our custom parser in OfflineEditAdvanced.js
g_formNode = {
elements:[
{type:"file",
files:files}
]
};
g_formData = new FormData();
g_formData.append("attachment",file);
g_formData2 = form;
// retrieveFile2();
execJasmine();
}
else
{
console.log("Retrieve file failed");
}
};
xhr.onerror = function(e)
{
console.log("Retrieved file failed: " + JSON.stringify(e));
};
xhr.send(null);
}
}
catch(err)
{
console.log(err);
}
retrieveFile();
}; // test()
}); // require()
</script>
</head>
<body>
<form id="theForm">
<input type="file" name="attachment" id="theFile"><br/>
<span>Select any file (.png, .jpg,...) to launch unit testing</span>
</form>
<div id="map" style="position: absolute; bottom: 0; right: 0; height:200px; width: 200px;"></div>
<img src="" alt="" id="fakeTile" style="display:none;">
</body>
</html>