editingAttributedStringFromRange in WebHTMLConverter does not handle NSUnderlineStyle...
authorenrica@apple.com <enrica@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jan 2012 16:55:15 +0000 (16:55 +0000)
committerenrica@apple.com <enrica@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jan 2012 16:55:15 +0000 (16:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=76588
<rdar://problem/9325183>

Source/WebCore:

Reviewed by Dan Bernstein.

Added TestWebKitAPI test.

* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter editingAttributedStringFromRange:]):

Tools:

Added test.

Reviewed by Dan Bernstein.

* TestWebKitAPI/Tests/mac/InspectorBar.mm:
(TestWebKitAPI::TEST):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105416 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/mac/HTMLConverter.mm
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/mac/InspectorBar.mm

index 55d74a4..ba6ece7 100644 (file)
@@ -1,3 +1,16 @@
+2012-01-18  Enrica Casucci  <enrica@apple.com>
+
+        editingAttributedStringFromRange in WebHTMLConverter does not handle NSUnderlineStyleAttributeName.
+        https://bugs.webkit.org/show_bug.cgi?id=76588
+        <rdar://problem/9325183>
+
+        Reviewed by Dan Bernstein.
+
+        Added TestWebKitAPI test.
+
+        * platform/mac/HTMLConverter.mm:
+        (+[WebHTMLConverter editingAttributedStringFromRange:]):
+
 2012-01-18  Alexander Pavlov  <apavlov@chromium.org>
 
         Web Inspector: Implement screen resolution emulation backend
index ef4ca3a..5ce5446 100644 (file)
@@ -1693,6 +1693,8 @@ static NSInteger _colCompare(id block1, id block2, void *)
         if (!renderer)
             continue;
         RenderStyle* style = renderer->style();
+        if (style->textDecorationsInEffect() & UNDERLINE)
+            [attrs.get() setObject:[NSNumber numberWithInteger:NSUnderlineStyleSingle] forKey:NSUnderlineStyleAttributeName];
         NSFont *font = style->font().primaryFont()->getNSFont();
         [attrs.get() setObject:font forKey:NSFontAttributeName];
         if (style->visitedDependentColor(CSSPropertyColor).alpha())
index 798c67f..07b6b37 100644 (file)
@@ -1,3 +1,16 @@
+2012-01-18  Enrica Casucci  <enrica@apple.com>
+
+        editingAttributedStringFromRange in WebHTMLConverter does not handle NSUnderlineStyleAttributeName.
+        https://bugs.webkit.org/show_bug.cgi?id=76588
+        <rdar://problem/9325183>
+
+        Added test.
+        
+        Reviewed by Dan Bernstein.
+
+        * TestWebKitAPI/Tests/mac/InspectorBar.mm:
+        (TestWebKitAPI::TEST):
+
 2012-01-19  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
 
         [Qt] Do full incremental builds until bots use update-webkit
index 7e46565..bebf50a 100644 (file)
@@ -56,13 +56,19 @@ TEST(WebKit1, InspectorBarTest)
     RetainPtr<InspectorBarController> inspectorBarController(AdoptNS, [InspectorBarController new]);
 
     webView.get().frameLoadDelegate = inspectorBarController.get();
-    [webView.get().mainFrame loadHTMLString:@"<body contenteditable style=\"color: green\">Lorem ipsum sit amet</body>" baseURL:[NSURL URLWithString:@"about:blank"]];
+    [webView.get().mainFrame loadHTMLString:@"<body contenteditable style=\"color: green\"><u>Lorem ipsum sit amet</u></body>" baseURL:[NSURL URLWithString:@"about:blank"]];
 
     Util::run(&didFinishLoad);
 
     DOMDocument *document = webView.get().mainFrameDocument;
     [[document body] focus];
     [webView.get() selectAll:nil];
+    
+    NSAttributedString *attrString = [(NSView <NSTextInput> *)[[[webView.get() mainFrame] frameView] documentView] attributedSubstringFromRange:NSMakeRange(0, 5)];
+    NSDictionary *attributes = [attrString attributesAtIndex:0 effectiveRange:0];
+    
+    EXPECT_TRUE([[attributes objectForKey:NSUnderlineStyleAttributeName] intValue] != 0);
+
     [webView.get() changeAttributes:inspectorBarController.get()];
     
     DOMNode *currentNode = [document body];
@@ -71,6 +77,7 @@ TEST(WebKit1, InspectorBarTest)
 
     DOMCSSStyleDeclaration *style = [document getComputedStyle:(DOMElement *)currentNode pseudoElement:nil];
     EXPECT_WK_STREQ(@"rgb(0, 0, 0)", [style color]);
+    
 }
 
 } // namespace TestWebKitAPI