aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 0b8aa287e5a01436821fddfa4f8a81f0d0a5ece1 (plain)
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# FiveUI

FiveUI is an extensible tool for evaluating HTML user interfaces
against sets of codified UI Guidelines.

## Installation and getting started

FiveUI is a basic browser extension with support for Firefox and
Google Chrome. If you're familiar with browser extensions, you can
quickly install FiveUI from the binaries:

 - Chrome: [fiveui.crx](http://galoisinc.github.com/FiveUI/binaries/fiveui.crx)
 - FireFox: [fiveui.xpi](http://galoisinc.github.com/FiveUI/binaries/fiveui.xpi)

The [Installation Guide](doc/manual_src/install.md) describes the
installation process for Firefox and Google Chrome.

After you've installed FiveUI, take a look at the [Getting Started
Guide](doc/manual_src/gettingStarted.md) to learn about Rule Sets and
setting URL Patterns to match web sites to codified guidelines.

## Building FiveUI

Most (if not all) the FiveUI dependencies are included in the
repository, so building FiveUI should be as simple as running:

    $ make

The default target will stage both extensions into the `build/chrome` and
`build/firefox` directories, respectively.  To build the packaged extensions,
use the `package` target.

    $ make package

### Chrome signing key

In order to build the Google Chrome extension, you will need to first place a
signing key in the top level directory with the name `fiveui.pem`. It isn't
necessary to do this in order to build and use the Chrome extension locally
(see `Using the Chrome Extension Unpacked` below).

### Using the Chrome Extension Unpacked

See the
[Chrome Extentions FAQ](http://developer.chrome.com/extensions/faq.html#faq-dev-01)
on how to load an unpacked extension using "Developer mode". You should use the
`build/chrome/` directory for this.

### Running the Firefox Extension Unpacked

The build system provides a `run-firefox` target that will make sure that the
staged extension is up to date, and then execute the `cfx run` command in the
right context.

    $ make run-firefox


## Running the tests

The `make test` target depends on:

 - a virtual framebuffer (xvfb-run)
 - Mozilla Firefox
 - a Java runtime
 - Apache Maven
 - PhantomJS

If those are installed, then you should be able to run the test target
from the top-level directory with:

    $ make test

If this fails to work on your system, please let us know so we
can make the testing process more robust.

### Testing without xvfb

Getting a virtual framebuffer (xvfb) working on OS X is tough. You can still
run the Maven tests manually by going to `src/batchtools` and running:

    $ mvn test

Beware that multiple browser instances will spawn in the process. The maven test
reports are by default written to the various
`*/target/surefire-reports/` directories.

# Repository layout

This is the repository for the FiveUI project.

    binaries    : A directory holding the latest extension binaries
    doc         : FiveUI Documentation
    exampleData : Sample web pages and rule sets for testing.
    mk          : Build system utilities
    profiles    : Sample user profiles for web browsers.  Used for testing.
    src         : Project source code
    tools       : Third-party build tools