mirror of
https://github.com/Esri/offline-editor-js.git
synced 2025-12-15 15:20:05 +00:00
204 lines
6.4 KiB
HTML
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>
|