aboutsummaryrefslogtreecommitdiff
path: root/test/shared/urls.test.ts
blob: f264ad96e602856e60fa7f47bd3b7d5899edc81d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import * as parsers from "../../src/shared/urls";
import { expect } from "chai";
import Search from "../../src/shared/settings/Search";

describe("shared/commands/parsers", () => {
  describe("#searchUrl", () => {
    const config = Search.fromJSON({
      default: "google",
      engines: {
        google: "https://google.com/search?q={}",
        yahoo: "https://yahoo.com/search?q={}",
      },
    });

    it("convertes search url", () => {
      expect(parsers.searchUrl("google.com", config)).to.equal(
        "http://google.com"
      );
      expect(parsers.searchUrl("google apple", config)).to.equal(
        "https://google.com/search?q=apple"
      );
      expect(parsers.searchUrl("yahoo apple", config)).to.equal(
        "https://yahoo.com/search?q=apple"
      );
      expect(parsers.searchUrl("google apple banana", config)).to.equal(
        "https://google.com/search?q=apple%20banana"
      );
      expect(parsers.searchUrl("yahoo C++CLI", config)).to.equal(
        "https://yahoo.com/search?q=C%2B%2BCLI"
      );
    });

    it("user default  search engine", () => {
      expect(parsers.searchUrl("apple banana", config)).to.equal(
        "https://google.com/search?q=apple%20banana"
      );
    });

    it("searches with a word containing a colon", () => {
      expect(parsers.searchUrl("foo:", config)).to.equal(
        "https://google.com/search?q=foo%3A"
      );
      expect(parsers.searchUrl("std::vector", config)).to.equal(
        "https://google.com/search?q=std%3A%3Avector"
      );
    });

    it("localhost urls", () => {
      expect(parsers.searchUrl("localhost", config)).to.equal(
        "http://localhost"
      );
      expect(parsers.searchUrl("http://localhost", config)).to.equal(
        "http://localhost/"
      );
      expect(parsers.searchUrl("localhost:8080", config)).to.equal(
        "http://localhost:8080"
      );
      expect(parsers.searchUrl("localhost:80nan", config)).to.equal(
        "https://google.com/search?q=localhost%3A80nan"
      );
      expect(parsers.searchUrl("localhost 8080", config)).to.equal(
        "https://google.com/search?q=localhost%208080"
      );
      expect(parsers.searchUrl("localhost:80/build", config)).to.equal(
        "http://localhost:80/build"
      );
    });
  });

  describe("#normalizeUrl", () => {
    it("normalize urls", () => {
      expect(parsers.normalizeUrl("https://google.com/")).to.equal(
        "https://google.com/"
      );
      expect(parsers.normalizeUrl("google.com")).to.equal("http://google.com");
    });
  });
});