Menu

#709 dom style / style rules not fully implemented

2.3
closed
None
5
2012-10-21
2008-10-08
gnark
No

actually causing yui and potentially other scripts to crash when creating a style tag and modifying its content by the rule api

styleNode.styleSheet / styleNode.styleSheet.addRule

because after usage of addRule

styleNode.styleSheet.rules

still is empty. this causes yui.datatable to crash within the _setColumnWidth function.

as of htmlunit 2.2 the problem was "less bad" / different, as the addRule api was not implemented at all, causing yui to fall back to another behaviour, but in 2.3 it runs into addRule und crashes with an index out of range error when accessing the added rule.

both 2.2 and 2.3 used with canoo webtest 2.6.1 have the glitch that in the yui case an empty style node is added to the html head. that one renders in reports as "<style/>" leaf. that causes ff3 (not ff2) and ie to produce a completely broken dom resulting in a white screen due to an empty dom body element.

Discussion

  • Marc Guillemot

    Marc Guillemot - 2008-10-15

    Can you please give a try to the latest 2.4 snapshot: http://build.canoo.com/htmlunit/artifacts/
    If I correctly remember, this has been implemented since 2.3.

     
  • gnark

    gnark - 2008-10-21

    i have to wait for a new canoo webtest release that works together with htmlunit 2.4. right now there seems to be incompatibility due to HtmlPage.getDocumentHtmlElement() (if i remember correctly)

    style object was there since 2.3. yes, but not "fully". since that moment scripts run into statements that try to effectively use it and fail.

    as soon as i can test a new webtest version i ll report here.

     
  • Marc Guillemot

    Marc Guillemot - 2008-10-21

    Current snapshot is not compatible with latest WebTest build? Can you provide the stacktrace of the exception you get?

     
  • gnark

    gnark - 2008-10-21

    i think it was webtest build 1720 with a htmlunit 2.4 snapshot from last week.

    here is stacktrace from report

    at com.canoo.webtest.steps.StepUtil.handleException(StepUtil.java:120)
    at com.canoo.webtest.steps.Step.handleException(Step.java:379)
    at com.canoo.webtest.steps.Step.execute(Step.java:110)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:206)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.Main.runBuild(Main.java:698)
    at org.apache.tools.ant.Main.startAnt(Main.java:199)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    

    Caused by: C:\Projects\Java\net.atrada.bitkom\test\webtest\includes\invokeCmsPageList.xml:2: java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.html.HtmlPage.getDocumentHtmlElement()Lcom/gargoylesoftware/htmlunit/html/HtmlElement;
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:115)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43)
    at com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31)
    at com.canoo.webtest.steps.Step.execute(Step.java:101)
    ... 59 more
    Caused by: java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.html.HtmlPage.getDocumentHtmlElement()Lcom/gargoylesoftware/htmlunit/html/HtmlElement;
    at com.canoo.webtest.engine.WebClientContext$CurrentWindowTracker.webWindowContentChanged(WebClientContext.java:111)
    at com.gargoylesoftware.htmlunit.WebClient.fireWindowContentChanged(WebClient.java:914)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:453)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:332)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:405)
    at com.canoo.webtest.steps.request.TargetHelper.getResponse(TargetHelper.java:69)
    at com.canoo.webtest.steps.request.AbstractTargetAction.getResponse(AbstractTargetAction.java:66)
    at com.canoo.webtest.steps.request.InvokePage.findTarget(InvokePage.java:160)
    at com.canoo.webtest.steps.request.AbstractTargetAction.doExecute(AbstractTargetAction.java:72)
    at com.canoo.webtest.steps.Step.execute(Step.java:101)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    ... 63 more
    --- Nested Exception ---
    C:\Projects\Java\net.atrada.bitkom\test\webtest\includes\invokeCmsPageList.xml:2: java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.html.HtmlPage.getDocumentHtmlElement()Lcom/gargoylesoftware/htmlunit/html/HtmlElement;
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:115)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43)
    at com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31)
    at com.canoo.webtest.steps.Step.execute(Step.java:101)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:206)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.Main.runBuild(Main.java:698)
    at org.apache.tools.ant.Main.startAnt(Main.java:199)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    Caused by: java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.html.HtmlPage.getDocumentHtmlElement()Lcom/gargoylesoftware/htmlunit/html/HtmlElement;
    at com.canoo.webtest.engine.WebClientContext$CurrentWindowTracker.webWindowContentChanged(WebClientContext.java:111)
    at com.gargoylesoftware.htmlunit.WebClient.fireWindowContentChanged(WebClient.java:914)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:453)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:332)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:405)
    at com.canoo.webtest.steps.request.TargetHelper.getResponse(TargetHelper.java:69)
    at com.canoo.webtest.steps.request.AbstractTargetAction.getResponse(AbstractTargetAction.java:66)
    at com.canoo.webtest.steps.request.InvokePage.findTarget(InvokePage.java:160)
    at com.canoo.webtest.steps.request.AbstractTargetAction.doExecute(AbstractTargetAction.java:72)
    at com.canoo.webtest.steps.Step.execute(Step.java:101)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    ... 63 more
    --- Nested Exception ---
    java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.html.HtmlPage.getDocumentHtmlElement()Lcom/gargoylesoftware/htmlunit/html/HtmlElement;
    at com.canoo.webtest.engine.WebClientContext$CurrentWindowTracker.webWindowContentChanged(WebClientContext.java:111)
    at com.gargoylesoftware.htmlunit.WebClient.fireWindowContentChanged(WebClient.java:914)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:453)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:332)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:405)
    at com.canoo.webtest.steps.request.TargetHelper.getResponse(TargetHelper.java:69)
    at com.canoo.webtest.steps.request.AbstractTargetAction.getResponse(AbstractTargetAction.java:66)
    at com.canoo.webtest.steps.request.InvokePage.findTarget(InvokePage.java:160)
    at com.canoo.webtest.steps.request.AbstractTargetAction.doExecute(AbstractTargetAction.java:72)
    at com.canoo.webtest.steps.Step.execute(Step.java:101)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:43)
    at com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:31)
    at com.canoo.webtest.steps.Step.execute(Step.java:101)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:206)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    at org.apache.tools.ant.Main.runBuild(Main.java:698)
    at org.apache.tools.ant.Main.startAnt(Main.java:199)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

     
  • Marc Guillemot

    Marc Guillemot - 2008-10-21

    WebTest build 1723 doesn't use any HtmlUnit deprecated method anymore and you should be able to replace HtmlUnit-2.3 with a 2.4 snapshot in it.

     
  • gnark

    gnark - 2008-10-24

    ok finally i found out: it works with a 2.4 snapshot :)

    the code was (extened with log statements):

    yui252:datatable-beta.js:9970

                if (!rule) {
                    if (s.styleSheet && s.styleSheet.addRule) {
                        s.styleSheet.addRule(sClassname,"overflow:"+sOverflow);
                        s.styleSheet.addRule(sClassname,"width:"+sWidth);
    

    DDOM.log("added rule (s.styleSheet.addRule)");
    rule = s.styleSheet.rules[s.styleSheet.rules.length-1];
    DDOM.log("last rule returned");
    } else if (s.sheet && s.sheet.insertRule) {
    s.sheet.insertRule(sClassname+" {overflow:"+sOverflow+";width:"+sWidth+";}",s.sheet.cssRules.length);
    DDOM.log("added rule (s.sheet.insertRule)");
    rule = s.sheet.cssRules[s.sheet.cssRules.length-1];
    DDOM.log("last rule returned");
    } else {
    DDOM.log("fallback (s.sheet.insertRule)");
    DT._bStylesheetFallback = true;
    }
    DT._oStylesheetRules[sClassname] = rule;
    }

    outputs:

    htmlunit 2.2
    13:41:11 CEST debug: fallback (s.sheet.insertRule)

    htmlunit 2.3
    13:26:56 CEST debug: added rule (s.styleSheet.addRule)
    (never reaches next log statement: "last rule returned")

    htmlunit 2.4 snapshot
    11:53:41 CEST debug: added rule (s.styleSheet.addRule)
    11:53:41 CEST debug: last rule returned

    thanks a lot. also very neat: the readystate of dynamically created script node for dynamic lib loading now fires correctly. in 2.3 it was somewhat halfbaked and my synchronous (blocking) loading detection was still triggered (which was good as the ready state event was fired within the node insertion statement but i think too soon). now it exactly behaves like a real browser, it even acts with a special race condition that revealed a bug in my dependeny loader :)

     
  • gnark

    gnark - 2008-10-24

    ahh stop. there is still an issue.

    the yui code above in the webtest client still produces a leaf style node in the document head of the report that is a dom snapshot (when document was changed with javascript):

    <style/>
    

    no matter what i set for

    <groovy>
        step.context.webClient.setCssEnabled(true)
    </groovy>
    

    unfortunately that is a broken report document in ff3 and ie7 (in ff2 it works, others i havent been testing), as the style leaf node is interpreted as a opening tag that never closes.

    is it possible to ajust the matter? otherwise reports have to be viewed with ff2 only...

     
  • Marc Guillemot

    Marc Guillemot - 2008-10-24

    Issue in asXml() for style now fixed in SVN. Thanks for reporting it.

    I close this issue as you confirmed that the problem originally reported has already been fixed.

     

Log in to post a comment.