mirror of
https://git.yoctoproject.org/poky
synced 2026-09-29 07:36:20 +02:00
bitbake: bitbake: toaster-tests: tests for project config
Add basic tests to validate the value, user types in the text box for DL_DIR and SSTATE_DIR. Added test case to validate the first char and inclusion of space between the characters. [YOCTO #9646] (Bitbake rev: 1531e98c5ae1693d11d692c3589df29dff9364df) Signed-off-by: Sujith H <sujith.h@gmail.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -31,6 +31,9 @@ class TestProjectConfigsPage(SeleniumTestCase):
|
|||||||
""" Test data at /project/X/builds is displayed correctly """
|
""" Test data at /project/X/builds is displayed correctly """
|
||||||
|
|
||||||
PROJECT_NAME = 'test project'
|
PROJECT_NAME = 'test project'
|
||||||
|
INVALID_PATH_START_TEXT = 'The directory path should either start with a /'
|
||||||
|
INVALID_PATH_CHAR_TEXT = 'The directory path cannot include spaces or ' \
|
||||||
|
'any of these characters'
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
|
bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
|
||||||
@@ -116,3 +119,113 @@ class TestProjectConfigsPage(SeleniumTestCase):
|
|||||||
checkbox.click()
|
checkbox.click()
|
||||||
self.assertTrue(("cpio" not in element.text),
|
self.assertTrue(("cpio" not in element.text),
|
||||||
"Image still present in the textbox")
|
"Image still present in the textbox")
|
||||||
|
|
||||||
|
def test_set_download_dir(self):
|
||||||
|
"""
|
||||||
|
Validate the allowed and disallowed types in the directory field for
|
||||||
|
DL_DIR
|
||||||
|
"""
|
||||||
|
|
||||||
|
ProjectVariable.objects.get_or_create(project=self.project1,
|
||||||
|
name='DL_DIR')
|
||||||
|
url = reverse('projectconf', args=(self.project1.id,))
|
||||||
|
self.get(url)
|
||||||
|
|
||||||
|
# activate the input to edit download dir
|
||||||
|
self.click('#change-dl_dir-icon')
|
||||||
|
self.wait_until_visible('#new-dl_dir')
|
||||||
|
|
||||||
|
# downloads dir path doesn't start with / or ${...}
|
||||||
|
self.enter_text('#new-dl_dir', 'home/foo')
|
||||||
|
element = self.wait_until_visible('#hintError-initialChar-dl_dir')
|
||||||
|
|
||||||
|
msg = 'downloads directory path starts with invalid character but ' \
|
||||||
|
'treated as valid'
|
||||||
|
self.assertTrue((self.INVALID_PATH_START_TEXT in element.text), msg)
|
||||||
|
|
||||||
|
# downloads dir path has a space
|
||||||
|
self.driver.find_element_by_id('new-dl_dir').clear()
|
||||||
|
self.enter_text('#new-dl_dir', '/foo/bar a')
|
||||||
|
|
||||||
|
element = self.wait_until_visible('#hintError-dl_dir')
|
||||||
|
msg = 'downloads directory path characters invalid but treated as valid'
|
||||||
|
self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
|
||||||
|
|
||||||
|
# downloads dir path starts with ${...} but has a space
|
||||||
|
self.driver.find_element_by_id('new-dl_dir').clear()
|
||||||
|
self.enter_text('#new-dl_dir', '${TOPDIR}/down foo')
|
||||||
|
|
||||||
|
element = self.wait_until_visible('#hintError-dl_dir')
|
||||||
|
msg = 'downloads directory path characters invalid but treated as valid'
|
||||||
|
self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
|
||||||
|
|
||||||
|
# downloads dir path starts with /
|
||||||
|
self.driver.find_element_by_id('new-dl_dir').clear()
|
||||||
|
self.enter_text('#new-dl_dir', '/bar/foo')
|
||||||
|
|
||||||
|
hidden_element = self.driver.find_element_by_id('hintError-dl_dir')
|
||||||
|
self.assertEqual(hidden_element.is_displayed(), False,
|
||||||
|
'downloads directory path valid but treated as invalid')
|
||||||
|
|
||||||
|
# downloads dir path starts with ${...}
|
||||||
|
self.driver.find_element_by_id('new-dl_dir').clear()
|
||||||
|
self.enter_text('#new-dl_dir', '${TOPDIR}/down')
|
||||||
|
|
||||||
|
hidden_element = self.driver.find_element_by_id('hintError-dl_dir')
|
||||||
|
self.assertEqual(hidden_element.is_displayed(), False,
|
||||||
|
'downloads directory path valid but treated as invalid')
|
||||||
|
|
||||||
|
def test_set_sstate_dir(self):
|
||||||
|
"""
|
||||||
|
Validate the allowed and disallowed types in the directory field for
|
||||||
|
SSTATE_DIR
|
||||||
|
"""
|
||||||
|
|
||||||
|
ProjectVariable.objects.get_or_create(project=self.project1,
|
||||||
|
name='SSTATE_DIR')
|
||||||
|
url = reverse('projectconf', args=(self.project1.id,))
|
||||||
|
self.get(url)
|
||||||
|
|
||||||
|
self.click('#change-sstate_dir-icon')
|
||||||
|
|
||||||
|
self.wait_until_visible('#new-sstate_dir')
|
||||||
|
|
||||||
|
# path doesn't start with / or ${...}
|
||||||
|
self.enter_text('#new-sstate_dir', 'home/foo')
|
||||||
|
element = self.wait_until_visible('#hintError-initialChar-sstate_dir')
|
||||||
|
|
||||||
|
msg = 'sstate directory path starts with invalid character but ' \
|
||||||
|
'treated as valid'
|
||||||
|
self.assertTrue((self.INVALID_PATH_START_TEXT in element.text), msg)
|
||||||
|
|
||||||
|
# path has a space
|
||||||
|
self.driver.find_element_by_id('new-sstate_dir').clear()
|
||||||
|
self.enter_text('#new-sstate_dir', '/foo/bar a')
|
||||||
|
|
||||||
|
element = self.wait_until_visible('#hintError-sstate_dir')
|
||||||
|
msg = 'sstate directory path characters invalid but treated as valid'
|
||||||
|
self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
|
||||||
|
|
||||||
|
# path starts with ${...} but has a space
|
||||||
|
self.driver.find_element_by_id('new-sstate_dir').clear()
|
||||||
|
self.enter_text('#new-sstate_dir', '${TOPDIR}/down foo')
|
||||||
|
|
||||||
|
element = self.wait_until_visible('#hintError-sstate_dir')
|
||||||
|
msg = 'sstate directory path characters invalid but treated as valid'
|
||||||
|
self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
|
||||||
|
|
||||||
|
# path starts with /
|
||||||
|
self.driver.find_element_by_id('new-sstate_dir').clear()
|
||||||
|
self.enter_text('#new-sstate_dir', '/bar/foo')
|
||||||
|
|
||||||
|
hidden_element = self.driver.find_element_by_id('hintError-sstate_dir')
|
||||||
|
self.assertEqual(hidden_element.is_displayed(), False,
|
||||||
|
'sstate directory path valid but treated as invalid')
|
||||||
|
|
||||||
|
# paths starts with ${...}
|
||||||
|
self.driver.find_element_by_id('new-sstate_dir').clear()
|
||||||
|
self.enter_text('#new-sstate_dir', '${TOPDIR}/down')
|
||||||
|
|
||||||
|
hidden_element = self.driver.find_element_by_id('hintError-sstate_dir')
|
||||||
|
self.assertEqual(hidden_element.is_displayed(), False,
|
||||||
|
'sstate directory path valid but treated as invalid')
|
||||||
Reference in New Issue
Block a user