Tests that renaming a selector updates element styles. Bug 70018. https://bugs.webkit.org/show_bug.cgi?id=70018

=== Before selector modification ===
[expanded] 
element.style { ()
    color: red;

[expanded] 
#inspected { (<style>)
/-- overloaded --/     color: green;

[expanded] 
div { (user agent stylesheet)
    display: block;

=== After non-affecting selector modification ===
[expanded] 
element.style { ()
    color: red;

[expanded] 
hr, #inspected { (<style>)
/-- overloaded --/     color: green;

[expanded] 
div { (user agent stylesheet)
    display: block;

=== After affecting selector modification ===
[expanded] 
element.style { ()
    color: red;

[expanded] [no-affect] 
#inspectedChanged { (<style>)
    color: green;

[expanded] 
div { (user agent stylesheet)
    display: block;


