| OLD | NEW |
| 1 <!-- | 1 <!-- |
| 2 Copyright 2016 The LUCI Authors. All rights reserved. | 2 Copyright 2016 The LUCI Authors. All rights reserved. |
| 3 Use of this source code is governed under the Apache License, Version 2.0 | 3 Use of this source code is governed under the Apache License, Version 2.0 |
| 4 that can be found in the LICENSE file. | 4 that can be found in the LICENSE file. |
| 5 | 5 |
| 6 --> | 6 --> |
| 7 <!DOCTYPE html> | 7 <!DOCTYPE html> |
| 8 <html> | 8 <html> |
| 9 <head> | 9 <head> |
| 10 <title>bot-page Demo</title> | 10 <title>task-page Demo</title> |
| 11 <meta charset="utf-8"> | 11 <meta charset="utf-8"> |
| 12 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | 12 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| 13 <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-
scale=1, user-scalable=yes"> | 13 <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-
scale=1, user-scalable=yes"> |
| 14 <script src="../bower_components/webcomponentsjs/webcomponents-lite.js"></scri
pt> | 14 <script src="../bower_components/webcomponentsjs/webcomponents-lite.js"></scri
pt> |
| 15 <script src="../../../node_modules/skia-common-js/common.js"></script> | 15 <script src="../../../node_modules/skia-common-js/common.js"></script> |
| 16 <script src="/res/js/common.js"></script> | 16 <script src="/res/js/common.js"></script> |
| 17 <script src="/res/js/alias.js"></script> | 17 <script src="/res/js/alias.js"></script> |
| 18 <script src="../../../node_modules/sinon/pkg/sinon-1.17.5.js"></script> | 18 <script src="../../../node_modules/sinon/pkg/sinon-1.17.5.js"></script> |
| 19 <!-- Makes a var called bots. It's an array of things that could be returned-
-> | 19 <!-- Makes a var called requests. It's an array of things that could be retur
ned--> |
| 20 <script type="text/javascript" src="bot-demo.json"></script> | 20 <script type="text/javascript" src="task-request-demo.json"></script> |
| 21 <!-- Makes a var called events. It's an array of things that could be returne
d--> | 21 <!-- Makes a var called results. It's an array of things that could be return
ed--> |
| 22 <script type="text/javascript" src="bot-events-demo.json"></script> | 22 <script type="text/javascript" src="task-result-demo.json"></script> |
| 23 <!-- Makes a var called tasks. It's an array of things that could be returned
--> | 23 <!-- Makes a var called stdouts. It's an array of things that could be return
ed--> |
| 24 <script type="text/javascript" src="bot-tasks-demo.json"></script> | 24 <script type="text/javascript" src="task-stdout-demo.json"></script> |
| 25 | 25 |
| 26 <script type="text/javascript" charset="utf-8"> | 26 <script type="text/javascript" charset="utf-8"> |
| 27 sinon.format = function(object) {return JSON.stringify(object);} | 27 sinon.format = function(object) {return JSON.stringify(object);} |
| 28 sinon.log = function(message) {console.log(message);}; | 28 sinon.log = function(message) {console.log(message);}; |
| 29 var server = sinon.fakeServer.create(); | 29 var server = sinon.fakeServer.create(); |
| 30 server.autoRespond = true; | 30 server.autoRespond = true; |
| 31 server.autoRespondAfter = 1000; | 31 server.autoRespondAfter = 700; |
| 32 | 32 |
| 33 var genResponse = function(arr) { | 33 var genResponse = function(arr) { |
| 34 return function(request){ | 34 return function(request){ |
| 35 if (!request.requestHeaders.authorization) { | 35 if (!request.requestHeaders.authorization) { |
| 36 sinon.log("You must be logged in (check your Oauth?)"); | 36 sinon.log("You must be logged in (check your Oauth?)"); |
| 37 request.respond(403, {}, "You must be logged in (check your Oauth?)"); | 37 request.respond(403, {}, "You must be logged in (check your Oauth?)"); |
| 38 return; | 38 return; |
| 39 } | 39 } |
| 40 sinon.log("User authenticated :) "+ request.requestHeaders.authorization
); | 40 sinon.log("User authenticated :) "+ request.requestHeaders.authorization
); |
| 41 sinon.log("Bot Request: "+sinon.format(request)); | 41 sinon.log("Bot Request: "+sinon.format(request)); |
| 42 // If the user changes bot id, show them some of the other sample data. | 42 // If the user changes bot id, show them some of the other sample data. |
| 43 var idx = request.url.indexOf("-00"); | 43 var idx = request.url.indexOf("f00"); |
| 44 var item = 0; | 44 var item = 0; |
| 45 if (idx !=-1) { | 45 if (idx !=-1) { |
| 46 var name = request.url.substring(idx+1, idx+4); | 46 var name = request.url.substring(idx+1, idx+4); |
| 47 item = parseInt(name) || 0; | 47 item = parseInt(name) || 0; |
| 48 name = Math.max(name - 1, 0); | 48 name = Math.max(name - 1, 0); |
| 49 name = Math.min(name, arr.length-1); | 49 name = Math.min(name, arr.length-1); |
| 50 } | 50 } |
| 51 | 51 |
| 52 | |
| 53 request.respond(200, {"Content-Type":"application/json"}, JSON.stringify
(arr[name])); | 52 request.respond(200, {"Content-Type":"application/json"}, JSON.stringify
(arr[name])); |
| 54 } | 53 } |
| 55 } | 54 } |
| 56 | 55 |
| 57 | 56 |
| 58 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/bot\/test-bot-\d+\/get
.*/, genResponse(bots)); | 57 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/task\/abcdef\d+\/reque
st.*/, genResponse(requests)); |
| 59 server.respondWith("GET", /^\/api\/swarming\/v1\/bot\/test-bot-\d+\/get.*/,
genResponse(bots)); | 58 server.respondWith("GET", /^\/api\/swarming\/v1\/task\/abcdef\d+\/request.*/
, genResponse(requests)); |
| 60 | 59 |
| 61 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/bot\/test-bot-\d+\/eve
nts.*/, genResponse(events)); | 60 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/task\/abcdef\d+\/resul
t.*/, genResponse(results)); |
| 62 server.respondWith("GET", /^\/api\/swarming\/v1\/bot\/test-bot-\d+\/events.*
/, genResponse(events)); | 61 server.respondWith("GET", /^\/api\/swarming\/v1\/task\/abcdef\d+\/result.*/,
genResponse(results)); |
| 63 | 62 |
| 64 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/bot\/test-bot-\d+\/tas
ks.*/, genResponse(tasks)); | 63 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/task\/abcdef\d+\/stdou
t.*/, genResponse(stdouts)); |
| 65 server.respondWith("GET", /^\/api\/swarming\/v1\/bot\/test-bot-\d+\/tasks.*/
, genResponse(tasks)); | 64 server.respondWith("GET", /^\/api\/swarming\/v1\/task\/abcdef\d+\/stdout.*/,
genResponse(stdouts)); |
| 66 | 65 |
| 67 var permissions = { | 66 var permissions = { |
| 68 cancel_task: true, | 67 cancel_task: true, |
| 69 delete_bot: true, | |
| 70 terminate_bot: true, | |
| 71 }; | 68 }; |
| 72 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/server\/permissions/,
JSON.stringify(permissions)); | 69 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/server\/permissions/,
JSON.stringify(permissions)); |
| 73 server.respondWith("GET", /^\/api\/swarming\/v1\/server\/permissions/, JSON.
stringify(permissions)); | 70 server.respondWith("GET", /^\/api\/swarming\/v1\/server\/permissions/, JSON.
stringify(permissions)); |
| 74 | 71 |
| 75 var details = { | 72 var details = { |
| 76 server_version: "1234-deadbeef", | 73 server_version: "1234-deadbeef", |
| 77 }; | 74 }; |
| 78 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/server\/details/, JSON
.stringify(details)); | 75 server.respondWith("GET", /^\/_ah\/api\/swarming\/v1\/server\/details/, JSON
.stringify(details)); |
| 79 server.respondWith("GET", /^\/api\/swarming\/v1\/server\/details/, JSON.stri
ngify(details)); | 76 server.respondWith("GET", /^\/api\/swarming\/v1\/server\/details/, JSON.stri
ngify(details)); |
| 80 | |
| 81 var deleteRequest = function(request) { | |
| 82 console.log("Deleting", request); | |
| 83 if (!request.requestHeaders.authorization) { | |
| 84 sinon.log("You must be logged in (check your Oauth?)"); | |
| 85 request.respond(403, {}, "You must be logged in (check your Oauth?)"); | |
| 86 return; | |
| 87 } | |
| 88 request.respond(200, {}, "Bot has been deleted."); | |
| 89 } | |
| 90 | |
| 91 server.respondWith("POST", /^\/_ah\/api\/swarming\/v1\/bot\/.+\/delete/, del
eteRequest); | |
| 92 server.respondWith("POST", /^\/api\/swarming\/v1\/bot\/.+\/delete/, deleteRe
quest); | |
| 93 | |
| 94 var terminateRequest = function(request) { | |
| 95 console.log("Terminating", request); | |
| 96 if (!request.requestHeaders.authorization) { | |
| 97 sinon.log("You must be logged in (check your Oauth?)"); | |
| 98 request.respond(403, {}, "You must be logged in (check your Oauth?)"); | |
| 99 return; | |
| 100 } | |
| 101 request.respond(200, {}, "Bot has been terminated."); | |
| 102 } | |
| 103 | |
| 104 server.respondWith("POST", /^\/_ah\/api\/swarming\/v1\/bot\/.+\/terminate/,
terminateRequest); | |
| 105 server.respondWith("POST", /^\/api\/swarming\/v1\/bot\/.+\/terminate/, termi
nateRequest); | |
| 106 </script> | 77 </script> |
| 107 | 78 |
| 108 <link rel="import" href="bot-page.html"> | 79 <link rel="import" href="task-page.html"> |
| 109 </head> | 80 </head> |
| 110 <body> | 81 <body> |
| 111 | 82 |
| 112 <bot-page | 83 <task-page |
| 113 bot_id="test-bot-001" | 84 task_id="abcdef001" |
| 114 client_id="20770472288-t5smpbpjptka4nd888fv0ctd23ftba2o.apps.googleusercontent
.com"> | 85 client_id="20770472288-t5smpbpjptka4nd888fv0ctd23ftba2o.apps.googleusercontent
.com" |
| 115 </bot-page> | 86 milo_prefix="/res/imp/taskpage/milo-sample.html?"> |
| 87 </task-page> |
| 116 | 88 |
| 117 </body> | 89 </body> |
| 118 </html> | 90 </html> |
| OLD | NEW |