| Index: expectations/gm/loader.js
|
| ===================================================================
|
| --- expectations/gm/loader.js (revision 0)
|
| +++ expectations/gm/loader.js (revision 0)
|
| @@ -0,0 +1,52 @@
|
| +/*
|
| + * GMExpectedResultsLoader:
|
| + * Reads an expected-results.json file, and imports its data into $scope.
|
| + */
|
| +var GMExpectedResultsLoader = angular.module(
|
| + 'GMExpectedResultsLoader',
|
| + [],
|
| + function($httpProvider) {
|
| + /* Override transformResponse so that the numeric checksums are interpreted as
|
| + * strings instead, since Javascript cannot handle 64-bit integers. */
|
| + $httpProvider.defaults.transformResponse = function(data, headersGetter) {
|
| + return JSON.parse(data.replace(/\s(\d+)\s/g, " \"$1\" "));
|
| + }
|
| + }
|
| +);
|
| +GMExpectedResultsLoader.controller(
|
| + 'GMExpectedResultsLoader.Controller',
|
| + function($scope, $http) {
|
| + /* When the changePlatformPath function is called, download expected-results.json
|
| + * from the desired platform directory.
|
| + *
|
| + * When the JSON is received, predigest it and return it to the frontend as
|
| + * $scope.gmExpectedResults .
|
| + */
|
| + $scope.changePlatformPath = function() {
|
| + $http.get($scope.platformPath + "/expected-results.json").success(
|
| + function(response) {
|
| + var jsonResults = [];
|
| + var imageNameRegex = /^(.+)_([^_]+).png/;
|
| + angular.forEach(response['expected-results'], function(imageExpectations, imageName) {
|
| + var matched = imageNameRegex.exec(imageName);
|
| + var allowedImages = [];
|
| + angular.forEach(imageExpectations['allowed-digests'], function(allowedDigest, key) {
|
| + var thisImage = {
|
| + hashType: allowedDigest[0], hashValue: allowedDigest[1]
|
| + };
|
| + allowedImages.push(thisImage);
|
| + });
|
| + var thisResult = {
|
| + test: matched[1], config: matched[2],
|
| + allowedImages: allowedImages,
|
| + bugs: imageExpectations['bugs'],
|
| + reviewedByHuman: imageExpectations['reviewed-by-human']
|
| + };
|
| + jsonResults.push(thisResult);
|
| + });
|
| + $scope.gmExpectedResults = jsonResults;
|
| + }
|
| + );
|
| + };
|
| + }
|
| +);
|
|
|