# Client Goals

A server offers direct restful read/write access to pages it owns and proxy access to pages held elsewhere in federated space.
A page is owned if it was created with the server or has been cloned and edited such that it is believed to be the most authoritative copy of a page previously owned elsewhere.
A server operates as a proxy to the rest of the federated wiki.
In this role it reformats data and metadata providing a unified experience.
It is welcome to collect behavioral statistics in order to improve this experience by anticipating permitted peer-to-peer server operations.

In summary, the server's client side exists to:

- Offer to a user a browsing experience that is independent of any specific server.
- Support writing, editing and curating of one server in a way that offers suitable influence over others.

# Testing

All the client tests can be run by visiting /runtests.html on your server
or by running `npm run runtests`. Information about the libraries we
are using for testing can be found at:

- http://visionmedia.github.com/mocha/
- https://github.com/LearnBoost/expect.js
- http://sinonjs.org/
