testcentricity_web 4.1.10 → 4.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -1
  3. data/README.md +73 -35
  4. data/lib/testcentricity_web/data_objects/environment.rb +0 -1
  5. data/lib/testcentricity_web/version.rb +1 -1
  6. data/lib/testcentricity_web/web_core/page_objects_helper.rb +39 -2
  7. data/lib/testcentricity_web/web_core/webdriver_helper.rb +67 -61
  8. data/lib/testcentricity_web/web_elements/media.rb +108 -0
  9. data/lib/testcentricity_web/web_elements/textfield.rb +28 -0
  10. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +39 -1
  11. metadata +6 -150
  12. data/.gitignore +0 -39
  13. data/.idea/.name +0 -1
  14. data/.idea/encodings.xml +0 -6
  15. data/.idea/misc.xml +0 -4
  16. data/.idea/modules.xml +0 -8
  17. data/.idea/vcs.xml +0 -7
  18. data/.rspec +0 -4
  19. data/.rubocop.yml +0 -38
  20. data/.ruby-version +0 -1
  21. data/.simplecov +0 -9
  22. data/CODE_OF_CONDUCT.md +0 -13
  23. data/Gemfile +0 -6
  24. data/Rakefile +0 -115
  25. data/config/cucumber.yml +0 -171
  26. data/config/locales/en-US.yml +0 -56
  27. data/config/test_data/LOCAL_data.json +0 -15
  28. data/config/test_data/LOCAL_data.xls +0 -0
  29. data/config/test_data/LOCAL_data.yml +0 -11
  30. data/config/test_data/data.json +0 -25
  31. data/config/test_data/data.xls +0 -0
  32. data/config/test_data/data.yml +0 -20
  33. data/docker-compose.yml +0 -48
  34. data/features/basic_form_page_css.feature +0 -54
  35. data/features/basic_form_page_xpath.feature +0 -26
  36. data/features/custom_controls.feature +0 -29
  37. data/features/media_players.feature +0 -67
  38. data/features/step_definitions/generic_steps.rb.rb +0 -124
  39. data/features/step_definitions/media_steps.rb +0 -30
  40. data/features/support/data/form_data.rb +0 -43
  41. data/features/support/env.rb +0 -53
  42. data/features/support/hooks.rb +0 -270
  43. data/features/support/pages/base_test_page.rb +0 -22
  44. data/features/support/pages/basic_css_form_page.rb +0 -57
  45. data/features/support/pages/basic_form_page.rb +0 -500
  46. data/features/support/pages/basic_xpath_form_page.rb +0 -58
  47. data/features/support/pages/custom_controls_page.rb +0 -263
  48. data/features/support/pages/indexed_sections_page.rb +0 -57
  49. data/features/support/pages/media_test_page.rb +0 -207
  50. data/features/support/sections/header_nav.rb +0 -48
  51. data/features/support/sections/product_card.rb +0 -39
  52. data/features/support/world_data.rb +0 -12
  53. data/features/support/world_pages.rb +0 -18
  54. data/reports/.keep +0 -1
  55. data/spec/fixtures/page_object.rb +0 -22
  56. data/spec/fixtures/section_object.rb +0 -21
  57. data/spec/spec_helper.rb +0 -33
  58. data/spec/testcentricity_web/browser_spec.rb +0 -41
  59. data/spec/testcentricity_web/elements/audio_spec.rb +0 -68
  60. data/spec/testcentricity_web/elements/button_spec.rb +0 -18
  61. data/spec/testcentricity_web/elements/checkbox_spec.rb +0 -33
  62. data/spec/testcentricity_web/elements/file_field_spec.rb +0 -13
  63. data/spec/testcentricity_web/elements/image_spec.rb +0 -33
  64. data/spec/testcentricity_web/elements/label_spec.rb +0 -18
  65. data/spec/testcentricity_web/elements/link_spec.rb +0 -23
  66. data/spec/testcentricity_web/elements/list_spec.rb +0 -13
  67. data/spec/testcentricity_web/elements/radio_spec.rb +0 -28
  68. data/spec/testcentricity_web/elements/ui_element_spec.rb +0 -125
  69. data/spec/testcentricity_web/elements/video_spec.rb +0 -68
  70. data/spec/testcentricity_web/helper_specs/object_helpers_spec.rb +0 -39
  71. data/spec/testcentricity_web/helper_specs/string_helpers_spec.rb +0 -49
  72. data/spec/testcentricity_web/page_object_spec.rb +0 -90
  73. data/spec/testcentricity_web/section_object_spec.rb +0 -72
  74. data/spec/testcentricity_web/version_spec.rb +0 -7
  75. data/spec/testcentricity_web/webdriver_connect/grid_webdriver_spec.rb +0 -72
  76. data/spec/testcentricity_web/webdriver_connect/local_webdriver_spec.rb +0 -86
  77. data/spec/testcentricity_web/webdriver_connect/mobile_webdriver_spec.rb +0 -65
  78. data/test_site/basic_test_page.html +0 -269
  79. data/test_site/chosen/chosen-sprite.png +0 -0
  80. data/test_site/chosen/chosen-sprite@2x.png +0 -0
  81. data/test_site/chosen/chosen.css +0 -496
  82. data/test_site/chosen/chosen.jquery.js +0 -1359
  83. data/test_site/chosen/chosen.jquery.min.js +0 -3
  84. data/test_site/chosen/chosen.min.css +0 -11
  85. data/test_site/chosen/chosen.proto.js +0 -1399
  86. data/test_site/chosen/chosen.proto.min.js +0 -3
  87. data/test_site/chosen/composer.json +0 -36
  88. data/test_site/custom_controls_page.html +0 -629
  89. data/test_site/docsupport/chosen.png +0 -0
  90. data/test_site/docsupport/init.js +0 -11
  91. data/test_site/docsupport/init.proto.js +0 -16
  92. data/test_site/docsupport/jquery-1.12.4.min.js +0 -5
  93. data/test_site/docsupport/jquery-3.2.1.min.js +0 -4
  94. data/test_site/docsupport/oss-credit.png +0 -0
  95. data/test_site/docsupport/prism.css +0 -108
  96. data/test_site/docsupport/prism.js +0 -9
  97. data/test_site/docsupport/prototype-1.7.0.0.js +0 -6082
  98. data/test_site/docsupport/style.css +0 -219
  99. data/test_site/images/Blouse_Black.jpg +0 -0
  100. data/test_site/images/Granny.jpg +0 -0
  101. data/test_site/images/Printed_Dress.jpg +0 -0
  102. data/test_site/images/T-shirt.jpg +0 -0
  103. data/test_site/images/Wilder.jpg +0 -0
  104. data/test_site/images/You_Betcha.jpg +0 -0
  105. data/test_site/images/jeans3.jpg +0 -0
  106. data/test_site/indexed_sections_page.html +0 -215
  107. data/test_site/media/MIB2-subtitles-pt-BR.vtt +0 -49
  108. data/test_site/media/MIB2.mp4 +0 -0
  109. data/test_site/media/MP4_small.mp4 +0 -0
  110. data/test_site/media/MPS_sample.mp3 +0 -0
  111. data/test_site/media/bbc_scotland_report.mp3 +0 -0
  112. data/test_site/media/count_and_bars.mp4 +0 -0
  113. data/test_site/media_page.html +0 -86
  114. data/testcentricity_web.gemspec +0 -59
@@ -1,90 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::PageObject, required: true do
4
- before :context do
5
- @test_page = TestPage.new
6
- end
7
-
8
- context 'page object traits' do
9
- it 'returns page name' do
10
- expect(@test_page.page_name).to eq('Basic Test Page')
11
- end
12
-
13
- it 'returns page url' do
14
- expect(@test_page.page_url).to eq('/basic_test_page.html')
15
- end
16
-
17
- it 'returns page locator' do
18
- expect(@test_page.page_locator).to eq('form#HTMLFormElements')
19
- end
20
-
21
- it 'determines if page is secure' do
22
- allow(@test_page).to receive(:secure?).and_return(false)
23
- expect(@test_page.secure?).to eq(false)
24
- end
25
-
26
- it 'should display the title of the page' do
27
- allow(@test_page).to receive(:title).and_return('I am the title of a page')
28
- expect(@test_page.title).to eql 'I am the title of a page'
29
- end
30
-
31
- it 'determines if page is secure' do
32
- allow(@test_page).to receive(:secure?).and_return(false)
33
- expect(@test_page.secure?).to eq(false)
34
- end
35
-
36
- it 'responds to open_portal' do
37
- expect(@test_page).to respond_to(:open_portal)
38
- end
39
-
40
- it 'responds to load_page' do
41
- expect(@test_page).to respond_to(:load_page)
42
- end
43
-
44
- it 'responds to verify_page_exists' do
45
- expect(@test_page).to respond_to(:verify_page_exists)
46
- end
47
-
48
- it 'responds to exists?' do
49
- expect(@test_page).to respond_to(:exists?)
50
- end
51
- end
52
-
53
- context 'page object with UI elements' do
54
- it 'responds to element' do
55
- expect(@test_page).to respond_to(:element1)
56
- end
57
-
58
- it 'responds to button' do
59
- expect(@test_page).to respond_to(:button1)
60
- end
61
-
62
- it 'responds to textfield' do
63
- expect(@test_page).to respond_to(:field1)
64
- end
65
-
66
- it 'responds to link' do
67
- expect(@test_page).to respond_to(:link1)
68
- end
69
-
70
- it 'responds to range' do
71
- expect(@test_page).to respond_to(:range1)
72
- end
73
-
74
- it 'responds to image' do
75
- expect(@test_page).to respond_to(:image1)
76
- end
77
-
78
- it 'responds to radio' do
79
- expect(@test_page).to respond_to(:radio1)
80
- end
81
-
82
- it 'responds to checkbox' do
83
- expect(@test_page).to respond_to(:check1)
84
- end
85
-
86
- it 'responds to section' do
87
- expect(@test_page).to respond_to(:section1)
88
- end
89
- end
90
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::PageSection, required: true do
4
- before :context do
5
- @test_page = TestPage.new
6
- @test_section = @test_page.section1
7
- end
8
-
9
- context 'section object traits' do
10
- it 'returns section name' do
11
- expect(@test_section.section_name).to eq('Basic Test Section')
12
- end
13
-
14
- it 'returns section locator' do
15
- expect(@test_section.get_locator).to eq('div#section')
16
- end
17
-
18
- it 'returns class' do
19
- expect(@test_section.class).to eql TestSection
20
- end
21
-
22
- it 'returns css locator type' do
23
- expect(@test_section.get_locator_type).to eql :css
24
- end
25
-
26
- it 'registers with type section' do
27
- expect(@test_section.get_object_type).to eql :section
28
- end
29
-
30
- it 'returns parent list object' do
31
- expect(@test_section.get_parent_list).to eql nil
32
- end
33
- end
34
-
35
- context 'section object with UI elements' do
36
- it 'responds to element' do
37
- expect(@test_section).to respond_to(:element1)
38
- end
39
-
40
- it 'responds to button' do
41
- expect(@test_section).to respond_to(:button1)
42
- end
43
-
44
- it 'responds to textfield' do
45
- expect(@test_section).to respond_to(:field1)
46
- end
47
-
48
- it 'responds to link' do
49
- expect(@test_section).to respond_to(:link1)
50
- end
51
-
52
- it 'responds to range' do
53
- expect(@test_section).to respond_to(:range1)
54
- end
55
-
56
- it 'responds to image' do
57
- expect(@test_section).to respond_to(:image1)
58
- end
59
-
60
- it 'responds to radio' do
61
- expect(@test_section).to respond_to(:radio1)
62
- end
63
-
64
- it 'responds to checkbox' do
65
- expect(@test_section).to respond_to(:check1)
66
- end
67
-
68
- it 'responds to section' do
69
- expect(@test_section).to respond_to(:section2)
70
- end
71
- end
72
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe 'TestCentricityWeb::VERSION', required: true do
4
- subject { TestCentricityWeb::VERSION }
5
-
6
- it { is_expected.to be_truthy }
7
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, grid: true do
4
- before(:context) do
5
- # instantiate remote test environment
6
- @environs ||= EnvironData
7
- @environs.find_environ('REMOTE', :yaml)
8
- ENV['SELENIUM'] = 'remote'
9
- endpoint = 'http://localhost:4444/wd/hub'
10
- ENV['REMOTE_ENDPOINT'] = endpoint
11
- # wait for Dockerized Selenium grid to be running
12
- 20.downto(0) do |interval|
13
- begin
14
- response = HTTParty.get("#{endpoint}/status")
15
- break if response.body.include?('Selenium Grid ready')
16
- rescue
17
- if interval == 0
18
- raise 'Selenium Grid is not running.'
19
- else
20
- sleep(1)
21
- end
22
- end
23
- end
24
- end
25
-
26
- context 'grid web browser instances' do
27
- it 'connects to a grid hosted Firefox browser' do
28
- ENV['WEB_BROWSER'] = 'firefox'
29
- WebDriverConnect.initialize_web_driver
30
- verify_grid_browser(browser = :firefox, platform = :desktop)
31
- end
32
-
33
- it 'connects to a grid hosted Chrome browser' do
34
- ENV['WEB_BROWSER'] = 'chrome'
35
- WebDriverConnect.initialize_web_driver
36
- Browsers.suppress_js_leave_page_modal
37
- verify_grid_browser(browser = :chrome, platform = :desktop)
38
- end
39
-
40
- it 'connects to a grid hosted Edge browser' do
41
- ENV['WEB_BROWSER'] = 'edge'
42
- WebDriverConnect.initialize_web_driver
43
- Browsers.suppress_js_alerts
44
- verify_grid_browser(browser = :edge, platform = :desktop)
45
- end
46
-
47
- it 'connects to a grid hosted emulated mobile web browser' do
48
- ENV['WEB_BROWSER'] = 'ipad_pro_12_9'
49
- ENV['HOST_BROWSER'] = 'chrome'
50
- ENV['ORIENTATION'] = 'portrait'
51
- WebDriverConnect.initialize_web_driver
52
- Browsers.set_device_orientation('landscape')
53
- verify_grid_browser(browser = :ipad_pro_12_9, platform = :mobile)
54
- end
55
- end
56
-
57
- after(:each) do
58
- $server.stop if Environ.driver == :appium && $server.running?
59
- Capybara.current_session.quit
60
- Environ.session_state = :quit
61
- end
62
-
63
- def verify_grid_browser(browser, platform)
64
- expect(Environ.browser).to eq(browser)
65
- expect(Environ.platform).to eq(platform)
66
- expect(Environ.headless).to eq(false)
67
- expect(Environ.session_state).to eq(:running)
68
- expect(Environ.driver).to eq(:webdriver)
69
- expect(Environ.device).to eq(:web)
70
- expect(Environ.grid).to eq(:selenium_grid)
71
- end
72
- end
@@ -1,86 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, required: true do
4
- before(:context) do
5
- # instantiate local test environment
6
- @environs ||= EnvironData
7
- @environs.find_environ('LOCAL', :yaml)
8
- ENV['SELENIUM'] = ''
9
- end
10
-
11
- context 'local web browser instances' do
12
- it 'connects to a local Firefox browser' do
13
- ENV['WEB_BROWSER'] = 'firefox'
14
- WebDriverConnect.initialize_web_driver
15
- verify_local_browser(browser = :firefox, platform = :desktop, headless = false)
16
- end
17
-
18
- it 'connects to a local Safari browser' do
19
- ENV['WEB_BROWSER'] = 'safari'
20
- WebDriverConnect.initialize_web_driver
21
- verify_local_browser(browser = :safari, platform = :desktop, headless = false)
22
- end
23
-
24
- it 'connects to a local Chrome browser' do
25
- ENV['WEB_BROWSER'] = 'chrome'
26
- WebDriverConnect.initialize_web_driver
27
- Browsers.suppress_js_leave_page_modal
28
- verify_local_browser(browser = :chrome, platform = :desktop, headless = false)
29
- end
30
-
31
- it 'connects to a local Edge browser' do
32
- ENV['WEB_BROWSER'] = 'edge'
33
- WebDriverConnect.initialize_web_driver
34
- Browsers.suppress_js_alerts
35
- verify_local_browser(browser = :edge, platform = :desktop, headless = false)
36
- end
37
-
38
- it 'connects to a local emulated mobile web browser' do
39
- ENV['WEB_BROWSER'] = 'ipad_pro_12_9'
40
- ENV['HOST_BROWSER'] = 'chrome'
41
- ENV['ORIENTATION'] = 'portrait'
42
- WebDriverConnect.initialize_web_driver
43
- Browsers.set_device_orientation('landscape')
44
- verify_local_browser(browser = :ipad_pro_12_9, platform = :mobile, headless = false)
45
- expect(Environ.browser_size).to eq([1366, 1024])
46
- end
47
- end
48
-
49
- context 'local headless browser instances' do
50
- it 'connects to a local headless Chrome browser' do
51
- ENV['WEB_BROWSER'] = 'chrome_headless'
52
- WebDriverConnect.initialize_web_driver
53
- Browsers.maximize_browser
54
- verify_local_browser(browser = :chrome_headless, platform = :desktop, headless = true)
55
- end
56
-
57
- it 'connects to a local headless Edge browser' do
58
- ENV['WEB_BROWSER'] = 'edge_headless'
59
- WebDriverConnect.initialize_web_driver
60
- Browsers.refresh_browser
61
- verify_local_browser(browser = :edge_headless, platform = :desktop, headless = true)
62
- end
63
-
64
- it 'connects to a local headless Firefox browser' do
65
- ENV['WEB_BROWSER'] = 'firefox_headless'
66
- WebDriverConnect.initialize_web_driver
67
- Browsers.delete_all_cookies
68
- verify_local_browser(browser = :firefox_headless, platform = :desktop, headless = true)
69
- end
70
- end
71
-
72
- after(:each) do
73
- Capybara.current_session.quit
74
- Environ.session_state = :quit
75
- end
76
-
77
- def verify_local_browser(browser, platform, headless)
78
- expect(Environ.browser).to eq(browser)
79
- expect(Environ.platform).to eq(platform)
80
- expect(Environ.headless).to eq(headless)
81
- expect(Environ.session_state).to eq(:running)
82
- expect(Environ.driver).to eq(:webdriver)
83
- expect(Environ.device).to eq(:web)
84
- expect(Environ.is_web?).to eq(true)
85
- end
86
- end
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, mobile: true do
4
- before(:context) do
5
- # instantiate local test environment
6
- @environs ||= EnvironData
7
- @environs.find_environ('LOCAL', :yaml)
8
- ENV['SELENIUM'] = ''
9
- ENV['WEB_BROWSER'] = 'appium'
10
- ENV['DEVICE_TYPE'] = 'tablet'
11
- # start Appium server
12
- $server = TestCentricity::AppiumServer.new
13
- $server.start
14
- end
15
-
16
- context 'Mobile device simulator' do
17
- it 'connects to iOS Simulator' do
18
- ENV['AUTOMATION_ENGINE'] = 'XCUITest'
19
- ENV['APP_PLATFORM_NAME'] = 'ios'
20
- ENV['APP_BROWSER'] = 'Safari'
21
- ENV['APP_VERSION'] = '15.4'
22
- ENV['APP_DEVICE'] = 'iPad Pro (12.9-inch) (5th generation)'
23
- WebDriverConnect.initialize_web_driver
24
- expect(Environ.browser).to eq(:appium)
25
- expect(Environ.platform).to eq(:mobile)
26
- expect(Environ.headless).to eq(false)
27
- expect(Environ.session_state).to eq(:running)
28
- expect(Environ.driver).to eq(:appium)
29
- expect(Environ.device).to eq(:simulator)
30
- expect(Environ.device_name).to eq('iPad Pro (12.9-inch) (5th generation)')
31
- expect(Environ.device_os).to eq(:ios)
32
- expect(Environ.device_type).to eq(:tablet)
33
- expect(Environ.device_os_version).to eq('15.4')
34
- expect(Environ.is_ios?).to eq(true)
35
- end
36
-
37
- it 'connects to Android Simulator' do
38
- ENV['APP_PLATFORM_NAME'] = 'Android'
39
- ENV['APP_BROWSER'] = 'Chrome'
40
- ENV['APP_VERSION'] = '12.0'
41
- ENV['APP_DEVICE'] = 'Pixel_C_API_31'
42
- WebDriverConnect.initialize_web_driver
43
- expect(Environ.browser).to eq(:appium)
44
- expect(Environ.platform).to eq(:mobile)
45
- expect(Environ.headless).to eq(false)
46
- expect(Environ.session_state).to eq(:running)
47
- expect(Environ.driver).to eq(:appium)
48
- expect(Environ.device).to eq(:simulator)
49
- expect(Environ.device_name).to eq('Pixel_C_API_31')
50
- expect(Environ.device_os).to eq(:android)
51
- expect(Environ.device_type).to eq(:tablet)
52
- expect(Environ.device_os_version).to eq('12.0')
53
- expect(Environ.is_android?).to eq(true)
54
- end
55
- end
56
-
57
- after(:each) do
58
- Capybara.current_session.quit
59
- Environ.session_state = :quit
60
- end
61
-
62
- after(:context) do
63
- $server.stop if Environ.driver == :appium && $server.running?
64
- end
65
- end
@@ -1,269 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Basic HTML Form</title>
6
- <style>
7
- table {
8
- font-family: arial, sans-serif;
9
- font-size: 15px;
10
- border-collapse: collapse;
11
- width: 85%;
12
- }
13
- td, th {
14
- border: 1px solid #dddddd;
15
- text-align: left;
16
- padding: 8px;
17
- }
18
- body {
19
- margin: 0;
20
- font-family: Arial, Helvetica, sans-serif;
21
- }
22
- .topnav {
23
- overflow: hidden;
24
- background-color: #333;
25
- }
26
- .topnav a {
27
- float: left;
28
- color: #f2f2f2;
29
- text-align: center;
30
- padding: 12px 14px;
31
- text-decoration: none;
32
- font-size: 15px;
33
- }
34
- .topnav a:hover {
35
- background-color: #ddd;
36
- color: black;
37
- }
38
- .topnav a.active {
39
- background-color: #04AA6D;
40
- color: white;
41
- }
42
- </style>
43
- </head>
44
- <body>
45
- <div class="page-body">
46
- <h2 id="header">Basic HTML Form</h2>
47
-
48
- <div id="nav_bar" class="topnav">
49
- <a id="form_link" class="active" href="#">Basic HTML Form</a>
50
- <a id="media_link" href="media_page.html">Media</a>
51
- <a id="indexed_sections_link" href="indexed_sections_page.html">Indexed Sections</a>
52
- <a id="custom_controls_link" href="custom_controls_page.html">Custom Controls</a>
53
- </div>
54
-
55
-
56
- <div class="centered">
57
- <form name="HTMLFormElements" id="HTMLFormElements">
58
- <table border="1" cellpadding="5">
59
- <tr>
60
- <td>
61
- <table>
62
- <label id="inputs">Inputs:</label>
63
- <tbody>
64
- <tr>
65
- <td>
66
- <label for="username">Username:</label>
67
- <input type="text" id="username" name="username" placeholder="User name" required>
68
- </td>
69
- <td>
70
- <label for="password">Password:</label>
71
- <input type="password" id="password" name="password" placeholder="Password" required>
72
- </td>
73
- <td>
74
- <label for="maxlength">Max Length:</label>
75
- <input type="text" id="maxlength" name="maxlength" placeholder="up to 64 characters" maxlength="64">
76
- </td>
77
- </tr>
78
- <tr>
79
- <td>
80
- <label for="readonly">Read Only:</label>
81
- <input type="text" id="readonly" name="readonly" value="I am a read only text field" readonly>
82
- </td>
83
- <td>
84
- <label for="number-field">Number:</label>
85
- <input id="number-field" type="number" name="number" min="10" max="1024" step="1" value="41">
86
- </td>
87
- <td>
88
- <label for="date-picker">Date: </label>
89
- <input id="date-picker" type="date" name="date" value="2022-05-23">
90
- </td>
91
- </tr>
92
- <tr>
93
- <td>
94
- <label for="date-time-picker">Local date time:</label>
95
- <input id="date-time-picker" type="datetime-local" name="datetime" value="2018-01-01T01:01">
96
- </td>
97
- <td>
98
- <label for="email-field">Email: </label>
99
- <input id="email-field" type="email" name="email" value="bob@mailinator.com">
100
- </td>
101
- <td>
102
- <label for="month-field">Month: </label>
103
- <input id="month-field" type="month" name="month" value="2022-09">
104
- </td>
105
- </tr>
106
- <tr>
107
- <td>
108
- <label for="color-picker">Color: </label>
109
- <input id="color-picker" type="color" name="color">
110
- </td>
111
- <td>
112
- <label for="slider">Range: </label>
113
- <input id="slider" type="range" name="slider" min="0" max="50">
114
- </td>
115
- <td>
116
- </td>
117
- </tr>
118
- </tbody>
119
- </table>
120
- </td>
121
- </tr>
122
-
123
- <tr>
124
- <td>
125
- <label for="comments">TextArea:</label>
126
- <textarea id="comments" name="comments" cols="80" rows="3"></textarea>
127
- </td>
128
- </tr>
129
-
130
- <tr>
131
- <td>
132
- <label for="filename">Filename:</label>
133
- <input type="file" id="filename" name="filename" size="35">
134
- </td>
135
- </tr>
136
-
137
- <tr>
138
- <td>
139
- <label id="checkboxes">Checkbox Items:</label>
140
- <input type="checkbox" id="check1" name="checkboxes[]" value="cb1" />Checkbox 1
141
- <input type="checkbox" id="check2" name="checkboxes[]" value="cb2" />Checkbox 2
142
- <input type="checkbox" id="check3" name="checkboxes[]" value="cb3" />Checkbox 3
143
- <input type="checkbox" id="check4" name="checkboxes[]" value="cb4" disabled/>Checkbox 4
144
- </td>
145
- </tr>
146
-
147
- <tr>
148
- <td>
149
- <label id="radios">Radio Items:</label>
150
- <input type="radio" id="radio1" name="radioval" value="rd1" />radio 1
151
- <input type="radio" id="radio2" name="radioval" value="rd2" />radio 2
152
- <input type="radio" id="radio3" name="radioval" value="rd3" />radio 3
153
- <input type="radio" id="radio4" name="radioval" value="rd4" disabled/>radio 4
154
- </td>
155
- </tr>
156
-
157
- <tr>
158
- <td>
159
- <label for="multipleselect">Multiple Select Values:</label>
160
- <select multiple="multiple" id="multipleselect" name="multipleselect" size="4">
161
- <option value="ms1">Selection Item 1</option>
162
- <option value="ms2">Selection Item 2</option>
163
- <option value="ms3">Selection Item 3</option>
164
- <option value="ms4">Selection Item 4</option>
165
- </select>
166
- </td>
167
- </tr>
168
-
169
- <tr>
170
- <td>
171
- <label for="dropdown">Dropdown:</label>
172
- <select id="dropdown" name="dropdown">
173
- <option value="dd1">Drop Down Item 1</option>
174
- <option value="dd2">Drop Down Item 2</option>
175
- <option value="dd3">Drop Down Item 3</option>
176
- <option value="dd4">Drop Down Item 4</option>
177
- <option value="dd5">Drop Down Item 5</option>
178
- <option value="dd6">Drop Down Item 6</option>
179
- </select>
180
- </td>
181
- </tr>
182
-
183
- <tr>
184
- <td>
185
- <label id="links">Links:</label>
186
- <ul id="links_list">
187
- <li>
188
- <a id="link1" href="media_page.html">Open Media Page in same window/tab</a>
189
- </li>
190
- <li>
191
- <a id="link2" href="media_page.html" target="_blank">Open Media Page in a new window/tab</a>
192
- </li>
193
- <li>
194
- <a id="link3" role="link" aria-disabled="true">Disabled Link</a>
195
- </li>
196
- </ul>
197
- </td>
198
- </tr>
199
-
200
- <tr>
201
- <td>
202
- <label for="table">Table:</label>
203
- <table id="table">
204
- <thead>
205
- <tr>
206
- <th>Company</th>
207
- <th>Contact</th>
208
- <th>Country</th>
209
- </tr>
210
- </thead>
211
- <tbody>
212
- <tr>
213
- <td>Alfreds Futterkiste</td>
214
- <td>Maria Anders</td>
215
- <td>Germany</td>
216
- </tr>
217
- <tr>
218
- <td>Centro comercial Moctezuma</td>
219
- <td>Francisco Chang</td>
220
- <td>Mexico</td>
221
- </tr>
222
- <tr>
223
- <td>Ernst Handel</td>
224
- <td>Roland Mendel</td>
225
- <td>Austria</td>
226
- </tr>
227
- <tr>
228
- <td>Island Trading</td>
229
- <td>Helen Bennett</td>
230
- <td>UK</td>
231
- </tr>
232
- </tbody>
233
- </table>
234
- </td>
235
- </tr>
236
-
237
- <tr>
238
- <td>
239
- <table>
240
- <label id="images">Images:</label>
241
- <tbody>
242
- <tr>
243
- <td>
244
- <img id="image1" src="images/Wilder.jpg" alt="It's alive" style="width:225px;height:225px;">
245
- </td>
246
- <td>
247
- <img id="image2" src="images/You_Betcha.jpg" alt="You Betcha" style="width:225px;height:225px;">
248
- </td>
249
- <td>
250
- <img id="image3" src="wrongname.gif" alt="A broken image" style="width:225px;height:225px;">
251
- </td>
252
- </tr>
253
- </tbody>
254
- </table>
255
- </td>
256
- </tr>
257
-
258
- <tr>
259
- <td>
260
- <input type="reset" id="cancel" name="cancel" value="Cancel" class="styled-click-button">
261
- <input type="submit" id="submit" name="submit" value="Submit" class="styled-click-button">
262
- </td>
263
- </tr>
264
- </table>
265
- </form>
266
- </div>
267
- </div>
268
- </body>
269
- </html>
Binary file
Binary file