64 lines
2.9 KiB
Text
64 lines
2.9 KiB
Text
= Ruby OpenID Test Server (ROTS), a dummy OpenID server that makes consumer tests dead easy.
|
|
|
|
ROTS is a minimal implementation of an OpenID server, developed on top of the Rack middleware, this
|
|
server provides an easy to use interface to make testing OpenID consumers really easy.
|
|
|
|
== No more mocks
|
|
|
|
Have you always wanted to test the authentication of an OpenID consumer implementation, but find your self
|
|
in a point where is to hard to mock? A lot of people have been there.
|
|
|
|
With ROTS, you only need to specify an identity url provided by the dummy server, passing with it a flag
|
|
saying that you want the authentication to be successful. It handles SREG extensions as well.
|
|
|
|
== How does it works
|
|
|
|
When you install the ROTS gem, a binary called rots is provided for starting the server (for more
|
|
info about what options you have when executing this file, check the -h option).
|
|
|
|
By default, rots will have a test user called "John Doe", with an OpenID identity "john.doe".
|
|
If you want to use your own test user name, you can specify a config file to rots. The
|
|
default configuration file looks like this:
|
|
|
|
# Default configuration file
|
|
identity: john.doe
|
|
sreg:
|
|
nickname: jdoe
|
|
fullname: John Doe
|
|
email: jhon@doe.com
|
|
dob: 1985-09-21
|
|
gender: M
|
|
|
|
You can specify a new config file using the option --config.
|
|
|
|
== Getting Started
|
|
|
|
The best way to get started, is running the rots server, and then starting to execute your OpenID consumer tests/specs. You just have to specify the identity url of your test user, if you want the OpenID response be successful just add the openid.success=true flag to the user identity url. If you don't specify the flag it
|
|
will return a cancel response instead.
|
|
|
|
Example:
|
|
|
|
it "should authenticate with OpenID" do
|
|
post("/consumer_openid_login", 'identity_url' => 'http://localhost:1132/john.doe?openid.success=true')
|
|
end
|
|
|
|
== Copyright
|
|
|
|
Copyright (C) 2009 Roman Gonzalez <romanandreg@gmail.com>
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to
|
|
deal in the Software without restriction, including without limitation the
|
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
sell copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|