You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
| var webpage = require("webpage"),
 | |
|     fs = require("fs");
 | |
| 
 | |
| var html_path = fs.absolute("test.html");
 | |
| var examples = [];
 | |
| 
 | |
| function run_example(example_index) {
 | |
|   if (example_index >= examples.length) {
 | |
|     phantom.exit(0);
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   var example = examples[example_index];
 | |
|   var snapshot_index = 0;
 | |
|   var page = webpage.create();
 | |
| 
 | |
|   page.viewportSize = { width: 500, height: 300 };
 | |
|   page.clipRect = { width: 500, height: 300 };
 | |
|   page.onAlert = function (msg) {
 | |
|     var e = JSON.parse(msg);
 | |
|     if (e.fn == "snapshot") {
 | |
|       page.render("output/" + example.name + snapshot_index + ".png");
 | |
|       snapshot_index += 1;
 | |
|     } else if (e.fn == "mousemove") {
 | |
|       page.sendEvent("mousemove", e.x, e.y);
 | |
|     }
 | |
|   };
 | |
| 
 | |
|   page.open(html_path, function (status) {
 | |
|     if (status == "fail") {
 | |
|       console.log("Failed to load test page: " + example.name);
 | |
|       phantom.exit(1);
 | |
|     } else {
 | |
|       page.evaluate(example.runner);
 | |
|     }
 | |
|     page.close();
 | |
|     run_example(example_index + 1);
 | |
|   });
 | |
| }
 | |
| 
 | |
| exports.def = function (name, runner) {
 | |
|   examples.push({ name: name, runner: runner });
 | |
| };
 | |
| 
 | |
| exports.run = function () {
 | |
|   if (fs.isDirectory("output")) {
 | |
|     fs.list("output").forEach(function (path) {
 | |
|       if (path != "." && path != "..") {
 | |
|         fs.remove("output/" + path);
 | |
|       }
 | |
|     });
 | |
|   } else {
 | |
|     fs.makeDirectory("output");
 | |
|   }
 | |
|   run_example(0);
 | |
| };
 |