Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Mocking jsonld.js documentLoader in jasmine tests and Angular.js" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script src="http://jasmine.github.io/1.3/lib/jasmine.js"></script>
<script src="http://jasmine.github.io/1.3/lib/jasmine-html.js"></script>
<script src="http://code.angularjs.org/1.2.9/angular-mocks.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jsonld/0.2.8/jsonld.js"></script>
  <link rel="stylesheet" href="http://jasmine.github.io/1.3/lib/jasmine.css"/>
  <script type="text/javascript">
            (function() {
                var jasmineEnv = jasmine.getEnv();
                jasmineEnv.updateInterval = 1000;
                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();
                }
            })();
        </script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var doc = {
    "@context": {
      "onto":"http://example.org/ontology#",
      "forums": { "@id": "onto:forums", "@type": "@id" },
      "users": { "@id": "onto:users", "@type": "@id" },
      "version": "http://version/number"
    },
    "@id": "http://example.com/Api/",
    "forums": "forums",
    "users": "users",
    "version": "1.0.1"
  };
function TestCtrl($scope, ngJsonLd) {
    
  this.loadDocument = function() {              
    return ngJsonLd.expand('http://example.org/ontology#forums');
  };
}
var ngJsonLd = function ($q, $rootScope) {
    this.expand = function(uri) {
    var deferred = $q.defer();
    jsonld.expand(uri, function(err, res) {
      $rootScope.$apply(function() {
        if(err) {
          deferred.reject(err);
        } else {
          deferred.resolve(res);
        }
      });
    });
    return deferred.promise;
  };
};
jsonld.documentLoader = function(url, callback) 
{
  return callback(null, 
                  {
                    contextUrl: null,
                    document: doc,
                    documentUrl: url
                  });
};   
describe('myApp', function () {
    
    var controller, scope;
    beforeEach(inject(function ($injector, $rootScope, $q) {
                
        scope = $rootScope.$new();
        controller = new TestCtrl(scope, new ngJsonLd($q, scope));
    }));
    
    it('should use mocked json-ld doc', function () {
      
      var links;
      
      runs(
        function(){ 
          controller.loadDocument().then(function(result){
            links = result;
          });
        });
      
      waitsFor(
        function() {
          return links;
        });
      
      runs(
        function() {
          console.log(links);
          expect(links).not.toBe(false);
        });
    });
});
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
tpluscodepro
0viewers