about summary refs log tree commit diff
path: root/pkgs/development/tools/casperjs/default.nix
blob: 60e680a60fcdc0cabd6755c5a7a4d577a3bf2750 (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
{ stdenv, fetchgit, python, phantomjs }:

stdenv.mkDerivation rec {
  name = "casperjs-1.0.0-RC5";

  src = fetchgit {
    url = "git://github.com/n1k0/casperjs.git";
    rev = "refs/tags/1.0.0-RC5";
    sha256 = "e7fd6b94b4b304416159196208dea7f6e8841a667df102eb378a698a92f0f2c7";
  };

  patchPhase = ''
    substituteInPlace bin/casperjs --replace "/usr/bin/env python" "${python}/bin/python" \
                                   --replace "'phantomjs'" "'${phantomjs}/bin/phantomjs'"
  '';

  installPhase = ''
    mkdir -p $out/share/casperjs $out/bin
    cp -a . $out/share/casperjs/.
    ln -s $out/share/casperjs/bin/casperjs $out/bin
  '';

  meta = {
    description = "Navigation scripting & testing utility for PhantomJS";
    longDescription = ''
      CasperJS is a navigation scripting & testing utility for PhantomJS.
      It eases the process of defining a full navigation scenario and provides useful high-level
      functions, methods & syntaxic sugar for doing common tasks such as:
      - defining & ordering navigation steps
      - filling forms
      - clicking links
      - capturing screenshots of a page (or an area)
      - making assertions on remote DOM
      - logging & events
      - downloading base64 encoded resources, even binary ones
      - catching errors and react accordingly
      - writing functional test suites, exporting results as JUnit XML (xUnit)
    '';

    homepage = http://casperjs.org;
    license = stdenv.lib.licenses.mit;

    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
    platforms = stdenv.lib.platforms.all;
  };
}