Statistics
| Branch: | Tag: | Revision:

root / ui / tests.py @ 67679131

History | View | Annotate | Download (2.3 kB)

1 ce124269 Dimitris Moraitis
from django.test import TestCase
2 c0124a81 Dimitris Moraitis
from selenium import selenium
3 c0124a81 Dimitris Moraitis
from multiprocessing import Process
4 c0124a81 Dimitris Moraitis
from time import sleep
5 ce124269 Dimitris Moraitis
6 e646ebe5 Dimitris Moraitis
7 c0124a81 Dimitris Moraitis
class FunctionalCase(TestCase):
8 c0124a81 Dimitris Moraitis
    """
9 c0124a81 Dimitris Moraitis
    Functional tests for synnefo.ui using Selenium
10 c0124a81 Dimitris Moraitis
    """
11 ce124269 Dimitris Moraitis
12 c0124a81 Dimitris Moraitis
    def setUp(self):
13 c0124a81 Dimitris Moraitis
        """Make the selenium connection"""
14 c0124a81 Dimitris Moraitis
        TestCase.setUp(self)
15 c0124a81 Dimitris Moraitis
        self.verificationErrors = []
16 c0124a81 Dimitris Moraitis
        self.selenium = selenium("localhost", 4444, "*firefox",
17 c0124a81 Dimitris Moraitis
                                 "http://localhost:8000/")
18 c0124a81 Dimitris Moraitis
        self.selenium.start()
19 ce124269 Dimitris Moraitis
20 c0124a81 Dimitris Moraitis
    def tearDown(self):
21 c0124a81 Dimitris Moraitis
        """Kill processes"""
22 c0124a81 Dimitris Moraitis
        TestCase.tearDown(self)
23 c0124a81 Dimitris Moraitis
        self.selenium.stop()
24 c0124a81 Dimitris Moraitis
        self.assertEqual([], self.verificationErrors)
25 e646ebe5 Dimitris Moraitis
26 c0124a81 Dimitris Moraitis
    def test_wizard(self):
27 c0124a81 Dimitris Moraitis
        sel = self.selenium
28 c0124a81 Dimitris Moraitis
        sel.open("/")
29 c0124a81 Dimitris Moraitis
        sel.wait_for_page_to_load("10000")
30 c0124a81 Dimitris Moraitis
        self.failUnless(sel.is_text_present("machines"))
31 c0124a81 Dimitris Moraitis
        sleep(2)
32 c0124a81 Dimitris Moraitis
        sel.click("create")
33 c0124a81 Dimitris Moraitis
        sel.click("small")
34 c0124a81 Dimitris Moraitis
        sel.click("//div[@id='wizard']/div/div[1]/button[2]")
35 0ad5737e Dimitris Moraitis
        sleep(2)
36 c0124a81 Dimitris Moraitis
        sel.click("medium")
37 0ad5737e Dimitris Moraitis
        sleep(2)
38 e646ebe5 Dimitris Moraitis
        try:
39 e646ebe5 Dimitris Moraitis
            self.assertEqual("2048", sel.get_value("ram-indicator"))
40 e646ebe5 Dimitris Moraitis
        except AssertionError, e:
41 e646ebe5 Dimitris Moraitis
            self.verificationErrors.append(str(e))
42 e646ebe5 Dimitris Moraitis
        try:
43 e646ebe5 Dimitris Moraitis
            self.assertEqual("2", sel.get_value("cpu-indicator"))
44 e646ebe5 Dimitris Moraitis
        except AssertionError, e:
45 e646ebe5 Dimitris Moraitis
            self.verificationErrors.append(str(e))
46 e646ebe5 Dimitris Moraitis
        try:
47 e646ebe5 Dimitris Moraitis
            self.assertEqual("40", sel.get_value("storage-indicator"))
48 e646ebe5 Dimitris Moraitis
        except AssertionError, e:
49 e646ebe5 Dimitris Moraitis
            self.verificationErrors.append(str(e))
50 0ad5737e Dimitris Moraitis
        sleep(2)
51 c0124a81 Dimitris Moraitis
        sel.click("//div[@id='wizard']/div/div[2]/button[2]")
52 0ad5737e Dimitris Moraitis
        sleep(2)
53 c0124a81 Dimitris Moraitis
        self.assertEqual("2", sel.get_text("machine_cpu-label"))
54 c0124a81 Dimitris Moraitis
        self.assertEqual("2048", sel.get_text("machine_ram-label"))
55 c0124a81 Dimitris Moraitis
        self.assertEqual("40", sel.get_text("machine_storage-label"))
56 c0124a81 Dimitris Moraitis
        sel.click("start")
57 0ad5737e Dimitris Moraitis
        sleep(2)
58 e646ebe5 Dimitris Moraitis
        try:
59 e646ebe5 Dimitris Moraitis
            self.failUnless(sel.is_text_present("Success"))
60 e646ebe5 Dimitris Moraitis
        except AssertionError, e:
61 e646ebe5 Dimitris Moraitis
            self.verificationErrors.append(str(e))
62 ce124269 Dimitris Moraitis
63 e646ebe5 Dimitris Moraitis
        #self.assertEqual("Success!",
64 e646ebe5 Dimitris Moraitis
        #                 sel.get_text("//div[@id='error-success']/h3"))
65 0ad5737e Dimitris Moraitis
        #sel.click("//div[@id='error-success']/a")
66 0ad5737e Dimitris Moraitis
        #try: self.failUnless(sel.is_text_present("My Debian Unstable server"))
67 0ad5737e Dimitris Moraitis
        #except AssertionError, e: self.verificationErrors.append(str(e))