Quick example of testing login form with mechanize and Test::Unit

I started testing with Ruby. So i first use Test::Unit and then i want to test some functionality on web. I read some examples at mechanize documentation, which is here or at your ruby/gems directory. So let’s look at the code.
require ‘mechanize’
require ‘test/unit’

class LoginTest < Test::Unit::TestCase
def test_login

#creating mechanize object
agent = WWW::Mechanize.new

#setting url
page = agent.get(‘http://zaparka.cz/wp-login.php’)

# get first html form on page, u can use page.form(‘form_name’)
login_form = page.forms.first

#fill value <input type=”text” name=”log” /> with login name
login_form.log = ‘name’

#fill value <input name=”pwd” type=”password” /> with password
login_form.pwd = ‘secrets’

#submiting form and saving result page to value page
page = google_form.submit()

# test if login was succesflull
assert_equal ‘Dashboard ‹ Petr Zaparka — WordPress’, page.title

end
end
It’s very easy and simply. However you can’t test javasript functionality. Next time i post testing with WEBRAT.

How to add second mysql server with installed WAMP

Because I started  learning Ruby on Rails I needed to run some database server for ruby. I like mysql.  I developing web aplications with WAMP (Windows + Apache + Mysql + PHP). So i tried to run Ruby on Rails with pre-installed version of mysql 5.1.33 but Rails didn’t work properly. I tried to find how to fix the problem bud it seems that Ruby on Rails has  some problems with mysql 5.1.33.

So i refused SQLite and PostgreSQL for my personal reasons, than only one option left, another mysql server. I downloaded mysql server 5.0. run installation and than configuration that failed in last item (security settings). But mysql server worked quite well.

I was wondering if Rails are going to accept another sqlserver. It didn’t let use say it did but i forget set different port to mysql server 5.0. So i had an idea that this port problem can cause the security problem. So i run configuaration tools set port to 3309 and click to final step and security problem appeared again.Never mind I thought. I added a line port: 3309 as you can see below,

development:
adapter: mysql
encoding: utf8
reconnect: false
database: blog_development
pool: 5
username: root
password: my_passwd
host: localhost
port: 3309

to database.yml in config folder of my project and run rake db:create.

Rails worked fine and WAMP too :).

So in short, you only need to set a different port to run 2 mysql servers at one pc.

PS: It may occur Error mesage  like:’ libmySQL.dll missing ‘ or something like that. You will fix this by copy libmySQL.dll from installed mysqlServer 5 directory (installedpath/mysql server 5.0/bin) to your ruby directory (installedpath/ruby/bin).

Start learning Ruby and Ruby on Rails framework

I has been developing Internet aplication about 9 years. In everyday work i use  PHP and AJAX technology. It is quite a long time ago when my friend Ladislav Martincik told me  about Ruby on Rails. I seen some amazing presentation of Rails framework he showed me. I wonder why I did not start learning and using Rails and Ruby at  that time. Maby it was too early for me or maybe i was  too lazy.

But …

I starting now. I bought book Begining Ruby on Rails last week. But the book seems to me that is little confusing. So i was browsing a little and I found this cool book called  ‘Poignant Guide to Ruby”. It is kind of unconventional but i love it. It is funny and very brightly written.  I’m looking forward to read more chapters tomorow.

Ps: I wonder how high can insects fly, because I live at 8th floor and it still bothers  me.