is local url

session

by ozzymcduff

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://code.jquery.com/qunit/qunit-1.19.0.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.19.0.css">
<div id="qunit"></div>
<div id="qunit-fixture"></div>

JavaScript

function isLocalUrl(url) {
  if (!url) {
    return false;
  } else {
    return url==='/' || !!url.match(/^~?\/[^\/\\]/);
  }
}

test("is local url", function(assert) {
  var localUrls = ['/', '/test/test', '~/foo', '/foo'];
  localUrls.forEach(function(localUrl) {
    assert.strictEqual(true, isLocalUrl(localUrl), localUrl);
  })
});

test("is not local url", function(assert) {
  var localUrls = ['http://test.test.se', 'https://test/test', '//~/foo', '//foo'];
  localUrls.forEach(function(localUrl) {
    assert.strictEqual(false, isLocalUrl(localUrl), localUrl);
  })
});