Heya Enrico

Is there a confirmed flag on the user model? No access to code at the moment, but that's my first suggestion.

Cheers

--
Pat

On 12/03/2009, at 4:52 PM, Enrico Teotti <enrico.teo...@gmail.com> wrote:

I am using radiant 0.7.1

2009/3/12 Enrico Teotti <enrico.teo...@gmail.com>:
Nice post Erik. I am wondering how did you get around the admin login?
I'm using this:
 u = User.create! :name => 'Administrator', :login => 'admin',
:password => 'radiant', :password_confirmation => 'radiant'
 visit("/admin/login")
 fill_in("Username", "admin")
 fill_in("Password", "radiant")
 click_button "Login"

but the outcome is always "Invalid username or password.".

Cheers,
Enrico


2009/2/14 Erik Ostrom <e...@echographia.com>:
I'm doing what it says in the subject line, and I thought I'd post some notes and links. For those who don't know, Cucumber (http://cukes.info/ ) is a BDD tool, successor to RSpec's story runner, that lets you describe desired behavior ("features") in something that looks like human language, and then write the code that defines the behavior ("steps") in Ruby. Webrat (http://github.com/brynary/webrat/tree/master) is an acceptance testing tool that lets you write steps that emulate browser interaction - clicking links, filling in forms - without the overhead of actually firing up a browser.
You all know what Radiant is.

(I'm working with Radiant 0.6.9, unfortunately, because I want my extension to support an existing site. But I suspect the basic steps will apply to
0.7.)



The basic setup went pretty quickly. The instructions for using Cucumber with Rails (http://wiki.github.com/aslakhellesoy/cucumber/ruby-on-rails ) go,
roughly:

  - install a bunch of gems
  - create a Rails project (I already had a Radiant project)
  - run the cucumber generator

In my case, script/generate didn't know about Cucumber, I guess because Radiant looks for generators in other places. So I created a new Rails project, ran the generator there, and copied the files that looked useful into my Radiant extension. I'm reconstructing this from the git commit - it
looks like the files were:

  - features/step_definitions/webrat_steps.rb
  - features/support/paths.rb
  - features/support/env.rb

I modified env.rb in two ways:

- The path to config/environment is three steps higher (../../../).
  - Load fixtures from spec/ (see
  http://wiki.github.com/aslakhellesoy/cucumber/fixtures).

That was pretty much it - I'm now able to start writing features and steps.



There was one major hitch. I wrote a step definition that goes like this:

When /^I visit the "(.+)" admin page$/ do |page|
 visit page_edit_path(Page.find_by_title(page))
end

... and a feature that goes like this, in part:

When I visit the "Anno Domini" admin page
And I fill in "Address" with "366 So. First Street, San Jose, CA 95113"
And I press "Save and Continue Editing"

You can guess what that does.  On the last step, when the form was
submitted, I got the error "Couldn't find Page without an ID". The edit
form, in the test environment only, was being created with
action="/admin/page/edit" (note the missing page ID) instead of
"/admin/pages/edit/3".

Turns out that in the test environment, Radiant adds its own test fixtures to the extension paths. If you're configured to load all extensions, that will include BasicExtension, which sets up a default route that gets in the
way of page_edit_path, and probably a lot of other paths.

For anyone else traveling this path, the way I got around this was to ensure
my extension was the only one loaded, by putting this line in
config/environment.rb in my project:

config.extensions = [ :locations ] if config.environment == 'test'

There may be a better way, but this is probably good enough. Looking forward, I see that in 0.7, the route that caused the trouble is commented
out.



Hope this is useful. When the extension is a little more functional, I plan to put it up on Github, so there'll be some sample code. Meantime, Aslak Hellesoy's Ba extension (http://github.com/aslakhellesoy/ba/tree/master ) is I think a little behind current practices, but it's where I got most of my
ideas.

--Erik Ostrom
 e...@echographia.com
_______________________________________________
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant




--
Enrico Teotti
IT consultant, accessible web sites and web applications
Sydney, NSW, Australia
enrico.teo...@gmail.com
mobile (IT) +393286590765
mobile (AU) +00610416748450

http://www.teotti.com




--
Enrico Teotti
IT consultant, accessible web sites and web applications
Sydney, NSW, Australia
enrico.teo...@gmail.com
mobile (IT) +393286590765
mobile (AU) +00610416748450

http://www.teotti.com
_______________________________________________
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
_______________________________________________
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to