--- /dev/null
+var assert = require("assert")
+var getUrl = require("../")
+
+describe("github url from username/repo", function () {
+ it("returns a github url for the username/repo", function () {
+ var url = getUrl("visionmedia/express")
+ assert.equal("https://github.com/visionmedia/express", url)
+ })
+
+ it("returns null if it does not match", function () {
+ var url = getUrl("package")
+ assert.deepEqual(null, url)
+ })
+
+ it("returns null if no repo/user was given", function () {
+ var url = getUrl()
+ assert.deepEqual(null, url)
+ })
+
+ it("returns null for something that's already a URI", function () {
+ var url = getUrl("file:../relative")
+ assert.deepEqual(null, url)
+ })
+
+ it("works with .", function () {
+ var url = getUrl("component/.download.er.js.")
+ assert.equal("https://github.com/component/.download.er.js.", url)
+ })
+
+ it("works with . in the beginning", function () {
+ var url = getUrl("component/.downloader.js")
+ assert.equal("https://github.com/component/.downloader.js", url)
+ })
+
+ it("works with -", function () {
+ var url = getUrl("component/-dow-nloader.j-s")
+ assert.equal("https://github.com/component/-dow-nloader.j-s", url)
+ })
+
+ it("can handle branches with #", function () {
+ var url = getUrl(
+ "component/entejs#1c3e1fe71640b4b477f04d947bd53c473799b277")
+
+ assert.equal("https://github.com/component/entejs#1c3e1fe71640b" +
+ "4b477f04d947bd53c473799b277", url)
+ })
+
+ it("can handle branches with slashes", function () {
+ var url = getUrl(
+ "component/entejs#some/branch/name")
+
+ assert.equal("https://github.com/component/entejs#some/branch/name", url)
+ })
+
+ describe("browser mode", function () {
+ it("is able to return urls for branches", function () {
+ var url = getUrl(
+ "component/entejs#1c3e1fe71640b4b477f04d947bd53c473799b277", true)
+
+ assert.equal("https://github.com/component/entejs/tree/1c3e1fe71640b" +
+ "4b477f04d947bd53c473799b277", url)
+ })
+ it("is able to return urls without a branch for the browser", function () {
+ var url = getUrl(
+ "component/entejs", true)
+
+ assert.equal("https://github.com/component/entejs", url)
+ })
+ })
+})