| <!DOCTYPE html> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <ruby></ruby> |
| <script> |
| function check(target, declUnprefixed, declPrefixed, csUnprefixed, csPrefixed) { |
| assert_equals(target.style.rubyPosition, declUnprefixed, 'style.rubyPosition'); |
| assert_equals(target.style.webkitRubyPosition, declPrefixed, |
| 'style.webkitRubyPosition'); |
| assert_equals(getComputedStyle(target)['ruby-position'], csUnprefixed, |
| 'getComputedStyle()["ruby-position"]'); |
| assert_equals(getComputedStyle(target)['-webkit-ruby-position'], csPrefixed, |
| 'getComputedStyle()["-webkit-ruby-position"]'); |
| } |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.removeAttribute('style'); |
| check(target, '', '', 'over', 'before'); |
| }, 'No style attribute'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.setAttribute('style', 'ruby-position: over'); |
| check(target, 'over', '', 'over', 'before'); |
| }, 'Specifying ruby-position:over in a style attribute'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.setAttribute('style', 'ruby-position: under'); |
| check(target, 'under', '', 'under', 'after'); |
| }, 'Specifying ruby-position:under in a style attribute'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.setAttribute('style', 'ruby-position: after'); |
| check(target, '', '', 'over', 'before'); |
| }, 'Specifying ruby-position:after in a style attribute'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.removeAttribute('style'); |
| target.style.rubyPosition = 'under'; |
| assert_equals(target.style.rubyPosition, 'under', 'style.rubyPosition'); |
| assert_equals(target.style.webkitRubyPosition, '', |
| 'style.webkitRubyPosition'); |
| assert_equals(target.getAttribute('style'), 'ruby-position: under;', |
| 'style attribute value'); |
| }, 'Specifying "under" via element.style.rubyPosition'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.removeAttribute('style'); |
| target.style.rubyPosition = 'after'; |
| assert_equals(target.style.rubyPosition, '', 'style.rubyPosition'); |
| assert_equals(target.style.webkitRubyPosition, '', |
| 'style.webkitRubyPosition'); |
| assert_equals(target.getAttribute('style'), null, 'style attribute value'); |
| }, 'Specifying "after" via element.style.rubyPosition'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.setAttribute('style', '-webkit-ruby-position: before'); |
| check(target, '', 'before', 'over', 'before'); |
| }, 'Specifying -webkit-ruby-position:before in a style attribute'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.setAttribute('style', '-webkit-ruby-position: after'); |
| check(target, '', 'after', 'under', 'after'); |
| }, 'Specifying -webkit-ruby-position:after in a style attribute'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.removeAttribute('style'); |
| target.style.webkitRubyPosition = 'under'; |
| assert_equals(target.style.rubyPosition, '', 'style.rubyPosition'); |
| assert_equals(target.style.webkitRubyPosition, '', |
| 'style.webkitRubyPosition'); |
| assert_equals(target.getAttribute('style'), null, 'style attribute value'); |
| }, 'Specifying "under" via element.style.webkitRubyPosition'); |
| |
| test(() => { |
| const target = document.querySelector('ruby'); |
| target.removeAttribute('style'); |
| target.style.webkitRubyPosition = 'after'; |
| assert_equals(target.style.rubyPosition, '', 'style.rubyPosition'); |
| assert_equals(target.style.webkitRubyPosition, 'after', |
| 'style.webkitRubyPosition'); |
| assert_equals(target.getAttribute('style'), '-webkit-ruby-position: after;', |
| 'style attribute value'); |
| |
| }, 'Specifying "after" via element.style.webkitRubyPosition'); |
| |
| </script> |