aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/netsniff.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/netsniff.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/netsniff.js143
1 files changed, 143 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/netsniff.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/netsniff.js
new file mode 100644
index 00000000..b702543e
--- /dev/null
+++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/netsniff.js
@@ -0,0 +1,143 @@
+if (!Date.prototype.toISOString) {
+ Date.prototype.toISOString = function () {
+ function pad(n) { return n < 10 ? '0' + n : n; }
+ function ms(n) { return n < 10 ? '00'+ n : n < 100 ? '0' + n : n }
+ return this.getFullYear() + '-' +
+ pad(this.getMonth() + 1) + '-' +
+ pad(this.getDate()) + 'T' +
+ pad(this.getHours()) + ':' +
+ pad(this.getMinutes()) + ':' +
+ pad(this.getSeconds()) + '.' +
+ ms(this.getMilliseconds()) + 'Z';
+ }
+}
+
+function createHAR(address, title, startTime, resources)
+{
+ var entries = [];
+
+ resources.forEach(function (resource) {
+ var request = resource.request,
+ startReply = resource.startReply,
+ endReply = resource.endReply;
+
+ if (!request || !startReply || !endReply) {
+ return;
+ }
+
+ // Exclude Data URI from HAR file because
+ // they aren't included in specification
+ if (request.url.match(/(^data:image\/.*)/i)) {
+ return;
+ }
+
+ entries.push({
+ startedDateTime: request.time.toISOString(),
+ time: endReply.time - request.time,
+ request: {
+ method: request.method,
+ url: request.url,
+ httpVersion: "HTTP/1.1",
+ cookies: [],
+ headers: request.headers,
+ queryString: [],
+ headersSize: -1,
+ bodySize: -1
+ },
+ response: {
+ status: endReply.status,
+ statusText: endReply.statusText,
+ httpVersion: "HTTP/1.1",
+ cookies: [],
+ headers: endReply.headers,
+ redirectURL: "",
+ headersSize: -1,
+ bodySize: startReply.bodySize,
+ content: {
+ size: startReply.bodySize,
+ mimeType: endReply.contentType
+ }
+ },
+ cache: {},
+ timings: {
+ blocked: 0,
+ dns: -1,
+ connect: -1,
+ send: 0,
+ wait: startReply.time - request.time,
+ receive: endReply.time - startReply.time,
+ ssl: -1
+ },
+ pageref: address
+ });
+ });
+
+ return {
+ log: {
+ version: '1.2',
+ creator: {
+ name: "PhantomJS",
+ version: phantom.version.major + '.' + phantom.version.minor +
+ '.' + phantom.version.patch
+ },
+ pages: [{
+ startedDateTime: startTime.toISOString(),
+ id: address,
+ title: title,
+ pageTimings: {
+ onLoad: page.endTime - page.startTime
+ }
+ }],
+ entries: entries
+ }
+ };
+}
+
+var page = require('webpage').create(),
+ system = require('system');
+
+if (system.args.length === 1) {
+ console.log('Usage: netsniff.js <some URL>');
+ phantom.exit(1);
+} else {
+
+ page.address = system.args[1];
+ page.resources = [];
+
+ page.onLoadStarted = function () {
+ page.startTime = new Date();
+ };
+
+ page.onResourceRequested = function (req) {
+ page.resources[req.id] = {
+ request: req,
+ startReply: null,
+ endReply: null
+ };
+ };
+
+ page.onResourceReceived = function (res) {
+ if (res.stage === 'start') {
+ page.resources[res.id].startReply = res;
+ }
+ if (res.stage === 'end') {
+ page.resources[res.id].endReply = res;
+ }
+ };
+
+ page.open(page.address, function (status) {
+ var har;
+ if (status !== 'success') {
+ console.log('FAIL to load the address');
+ phantom.exit(1);
+ } else {
+ page.endTime = new Date();
+ page.title = page.evaluate(function () {
+ return document.title;
+ });
+ har = createHAR(page.address, page.title, page.startTime, page.resources);
+ console.log(JSON.stringify(har, undefined, 4));
+ phantom.exit();
+ }
+ });
+}