Skip to content

Commit 72d1a4b

Browse files
committed
Implement lang attribute processing
DEVSIX-3243 Autoported commit. Original commit hash: [56914511] Manual files: src/main/java/com/itextpdf/html2pdf/attach/impl/layout/form/renderer/AbstractFormFieldRenderer.java
1 parent a9451b1 commit 72d1a4b

File tree

251 files changed

+1414
-171
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

251 files changed

+1414
-171
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System;
2+
using iText.Html2pdf;
3+
using iText.Html2pdf.Attach;
4+
using iText.Html2pdf.Html;
5+
using iText.Layout;
6+
using iText.Layout.Tagging;
7+
using iText.StyledXmlParser.Jsoup.Nodes;
8+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
9+
using iText.Test;
10+
11+
namespace iText.Html2pdf.Attach.Impl.Tags {
12+
public class AbbrTagWorkerTest : ExtendedITextTest {
13+
[NUnit.Framework.Test]
14+
public virtual void LangAttrInAbbrForTaggedPdfTest() {
15+
Attributes attributes = new Attributes();
16+
attributes.Put(AttributeConstants.LANG, "en");
17+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
18+
.ValueOf(TagConstants.ABBR), TagConstants.ABBR, attributes);
19+
JsoupElementNode node = new JsoupElementNode(element);
20+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
21+
AbbrTagWorker tagWorker = new AbbrTagWorker(node, processorContext);
22+
tagWorker.ProcessEnd(node, processorContext);
23+
IPropertyContainer propertyContainer = tagWorker.GetAllElements()[0];
24+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
25+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
26+
NUnit.Framework.Assert.AreEqual("en", lang);
27+
}
28+
}
29+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System;
2+
using iText.Html2pdf;
3+
using iText.Html2pdf.Attach;
4+
using iText.Html2pdf.Html;
5+
using iText.Layout;
6+
using iText.Layout.Tagging;
7+
using iText.StyledXmlParser.Jsoup.Nodes;
8+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
9+
using iText.Test;
10+
11+
namespace iText.Html2pdf.Attach.Impl.Tags {
12+
public class BodyTagWorkerTest : ExtendedITextTest {
13+
[NUnit.Framework.Test]
14+
public virtual void LangAttrInBodyForTaggedPdfTest() {
15+
Attributes attributes = new Attributes();
16+
attributes.Put(AttributeConstants.LANG, "en");
17+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
18+
.ValueOf(TagConstants.DIV), TagConstants.DIV, attributes);
19+
JsoupElementNode node = new JsoupElementNode(element);
20+
ConverterProperties converterProperties = new ConverterProperties();
21+
ProcessorContext processorContext = new ProcessorContext(converterProperties);
22+
BodyTagWorker tagWorker = new BodyTagWorker(node, processorContext);
23+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
24+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
25+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
26+
NUnit.Framework.Assert.AreEqual("en", lang);
27+
}
28+
}
29+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using iText.Html2pdf;
4+
using iText.Html2pdf.Attach;
5+
using iText.Html2pdf.Css;
6+
using iText.Html2pdf.Html;
7+
using iText.Layout;
8+
using iText.Layout.Tagging;
9+
using iText.StyledXmlParser.Jsoup.Nodes;
10+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
11+
using iText.Test;
12+
13+
namespace iText.Html2pdf.Attach.Impl.Tags {
14+
public class BrTagWorkerTest : ExtendedITextTest {
15+
[NUnit.Framework.Test]
16+
public virtual void LangAttrInBrForTaggedPdfTest() {
17+
Attributes attributes = new Attributes();
18+
attributes.Put(AttributeConstants.LANG, "en");
19+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
20+
.ValueOf(TagConstants.BR), TagConstants.BR, attributes);
21+
JsoupElementNode node = new JsoupElementNode(element);
22+
IDictionary<String, String> styles = new Dictionary<String, String>();
23+
styles.Put(CssConstants.FONT_FAMILY, "sans-serif");
24+
node.SetStyles(styles);
25+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
26+
BrTagWorker tagWorker = new BrTagWorker(node, processorContext);
27+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
28+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
29+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
30+
NUnit.Framework.Assert.AreEqual("en", lang);
31+
}
32+
}
33+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using iText.Html2pdf;
4+
using iText.Html2pdf.Attach;
5+
using iText.Html2pdf.Css;
6+
using iText.Html2pdf.Html;
7+
using iText.Layout;
8+
using iText.Layout.Element;
9+
using iText.StyledXmlParser.Jsoup.Nodes;
10+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
11+
using iText.Test;
12+
13+
namespace iText.Html2pdf.Attach.Impl.Tags {
14+
public class DisplayTableRowTagWorkerTest : ExtendedITextTest {
15+
[NUnit.Framework.Test]
16+
public virtual void LangAttrInDisplayTableRowForTaggedPdfTest() {
17+
Attributes attributes = new Attributes();
18+
attributes.Put(AttributeConstants.LANG, "en");
19+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
20+
.ValueOf(TagConstants.DIV), TagConstants.DIV, attributes);
21+
JsoupElementNode node = new JsoupElementNode(element);
22+
IDictionary<String, String> styles = new Dictionary<String, String>();
23+
styles.Put(CssConstants.WHITE_SPACE, CssConstants.NORMAL);
24+
styles.Put(CssConstants.TEXT_TRANSFORM, CssConstants.LOWERCASE);
25+
styles.Put(CssConstants.DISPLAY, CssConstants.TABLE_ROW);
26+
node.SetStyles(styles);
27+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
28+
DisplayTableRowTagWorker tagWorker = new DisplayTableRowTagWorker(node, processorContext);
29+
iText.StyledXmlParser.Jsoup.Nodes.Element childElement = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
30+
.ValueOf(TagConstants.TD), TagConstants.TD);
31+
JsoupElementNode childNode = new JsoupElementNode(childElement);
32+
styles = new Dictionary<String, String>();
33+
styles.Put(CssConstants.WHITE_SPACE, CssConstants.NORMAL);
34+
styles.Put(CssConstants.TEXT_TRANSFORM, CssConstants.LOWERCASE);
35+
styles.Put(CssConstants.DISPLAY, CssConstants.TABLE_CELL);
36+
childNode.SetStyles(styles);
37+
TdTagWorker childTagWorker = new TdTagWorker(childNode, processorContext);
38+
tagWorker.ProcessTagChild(childTagWorker, processorContext);
39+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
40+
NUnit.Framework.Assert.IsTrue(propertyContainer is Table);
41+
Cell cell = ((Table)propertyContainer).GetCell(0, 0);
42+
NUnit.Framework.Assert.IsNotNull(cell);
43+
NUnit.Framework.Assert.AreEqual("en", cell.GetAccessibilityProperties().GetLanguage());
44+
}
45+
}
46+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using iText.Html2pdf;
4+
using iText.Html2pdf.Attach;
5+
using iText.Html2pdf.Css;
6+
using iText.Html2pdf.Html;
7+
using iText.Layout;
8+
using iText.Layout.Element;
9+
using iText.Layout.Tagging;
10+
using iText.StyledXmlParser.Jsoup.Nodes;
11+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
12+
using iText.Test;
13+
14+
namespace iText.Html2pdf.Attach.Impl.Tags {
15+
public class DisplayTableTagWorkerTest : ExtendedITextTest {
16+
[NUnit.Framework.Test]
17+
public virtual void LangAttrInDisplayTableForTaggedPdfTest() {
18+
Attributes attributes = new Attributes();
19+
attributes.Put(AttributeConstants.LANG, "en");
20+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
21+
.ValueOf(TagConstants.DIV), TagConstants.DIV, attributes);
22+
JsoupElementNode node = new JsoupElementNode(element);
23+
IDictionary<String, String> styles = new Dictionary<String, String>();
24+
styles.Put(CssConstants.WHITE_SPACE, CssConstants.NORMAL);
25+
styles.Put(CssConstants.TEXT_TRANSFORM, CssConstants.LOWERCASE);
26+
styles.Put(CssConstants.DISPLAY, CssConstants.TABLE);
27+
node.SetStyles(styles);
28+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
29+
DisplayTableTagWorker tagWorker = new DisplayTableTagWorker(node, processorContext);
30+
tagWorker.ProcessEnd(node, processorContext);
31+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
32+
NUnit.Framework.Assert.IsTrue(propertyContainer is Table);
33+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
34+
NUnit.Framework.Assert.AreEqual("en", lang);
35+
}
36+
}
37+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using System;
2+
using iText.Html2pdf;
3+
using iText.Html2pdf.Attach;
4+
using iText.Html2pdf.Html;
5+
using iText.Layout;
6+
using iText.Layout.Tagging;
7+
using iText.StyledXmlParser.Jsoup.Nodes;
8+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
9+
using iText.Test;
10+
11+
namespace iText.Html2pdf.Attach.Impl.Tags {
12+
public class DivTagWorkerTest : ExtendedITextTest {
13+
[NUnit.Framework.Test]
14+
public virtual void LangAttrInDivForTaggedPdfTest() {
15+
Attributes attributes = new Attributes();
16+
attributes.Put(AttributeConstants.LANG, "en");
17+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
18+
.ValueOf(TagConstants.DIV), TagConstants.DIV, attributes);
19+
JsoupElementNode node = new JsoupElementNode(element);
20+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
21+
DivTagWorker tagWorker = new DivTagWorker(node, processorContext);
22+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
23+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
24+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
25+
NUnit.Framework.Assert.AreEqual("en", lang);
26+
}
27+
}
28+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using iText.Html2pdf;
4+
using iText.Html2pdf.Attach;
5+
using iText.Html2pdf.Css;
6+
using iText.Html2pdf.Html;
7+
using iText.Layout;
8+
using iText.Layout.Tagging;
9+
using iText.StyledXmlParser.Jsoup.Nodes;
10+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
11+
using iText.Test;
12+
13+
namespace iText.Html2pdf.Attach.Impl.Tags {
14+
public class LiTagWorkerTest : ExtendedITextTest {
15+
[NUnit.Framework.Test]
16+
public virtual void LangAttrInLiForTaggedPdfTest() {
17+
Attributes attributes = new Attributes();
18+
attributes.Put(AttributeConstants.LANG, "en");
19+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
20+
.ValueOf(TagConstants.LI), TagConstants.LI, attributes);
21+
JsoupElementNode node = new JsoupElementNode(element);
22+
IDictionary<String, String> styles = new Dictionary<String, String>();
23+
styles.Put(CssConstants.WHITE_SPACE, CssConstants.NORMAL);
24+
styles.Put(CssConstants.TEXT_TRANSFORM, CssConstants.LOWERCASE);
25+
node.SetStyles(styles);
26+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
27+
processorContext.GetState().Push(new UlOlTagWorker(node, processorContext));
28+
LiTagWorker tagWorker = new LiTagWorker(node, processorContext);
29+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
30+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
31+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
32+
NUnit.Framework.Assert.AreEqual("en", lang);
33+
}
34+
}
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using iText.Html2pdf;
4+
using iText.Html2pdf.Attach;
5+
using iText.Html2pdf.Css;
6+
using iText.Html2pdf.Html;
7+
using iText.Layout;
8+
using iText.Layout.Tagging;
9+
using iText.StyledXmlParser.Jsoup.Nodes;
10+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
11+
using iText.Test;
12+
13+
namespace iText.Html2pdf.Attach.Impl.Tags {
14+
public class PTagWorkerTest : ExtendedITextTest {
15+
[NUnit.Framework.Test]
16+
public virtual void LangAttrInPForTaggedPdfTest() {
17+
Attributes attributes = new Attributes();
18+
attributes.Put(AttributeConstants.LANG, "en");
19+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
20+
.ValueOf(TagConstants.P), TagConstants.P, attributes);
21+
JsoupElementNode node = new JsoupElementNode(element);
22+
IDictionary<String, String> styles = new Dictionary<String, String>();
23+
styles.Put(CssConstants.WHITE_SPACE, CssConstants.NORMAL);
24+
styles.Put(CssConstants.TEXT_TRANSFORM, CssConstants.LOWERCASE);
25+
node.SetStyles(styles);
26+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
27+
PTagWorker tagWorker = new PTagWorker(node, processorContext);
28+
tagWorker.ProcessEnd(node, processorContext);
29+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
30+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
31+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
32+
NUnit.Framework.Assert.AreEqual("en", lang);
33+
}
34+
}
35+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System;
2+
using iText.Html2pdf;
3+
using iText.Html2pdf.Attach;
4+
using iText.Html2pdf.Html;
5+
using iText.Layout;
6+
using iText.Layout.Tagging;
7+
using iText.StyledXmlParser.Jsoup.Nodes;
8+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
9+
using iText.Test;
10+
11+
namespace iText.Html2pdf.Attach.Impl.Tags {
12+
public class SpanTagWorkerTest : ExtendedITextTest {
13+
[NUnit.Framework.Test]
14+
public virtual void LangAttrInSpanForTaggedPdfTest() {
15+
Attributes attributes = new Attributes();
16+
attributes.Put(AttributeConstants.LANG, "en");
17+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
18+
.ValueOf(TagConstants.SPAN), TagConstants.SPAN, attributes);
19+
JsoupElementNode node = new JsoupElementNode(element);
20+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
21+
SpanTagWorker tagWorker = new SpanTagWorker(node, processorContext);
22+
tagWorker.ProcessContent("Some text", processorContext);
23+
tagWorker.ProcessEnd(node, processorContext);
24+
IPropertyContainer propertyContainer = tagWorker.GetAllElements()[0];
25+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
26+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
27+
NUnit.Framework.Assert.AreEqual("en", lang);
28+
}
29+
}
30+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using iText.Html2pdf;
4+
using iText.Html2pdf.Attach;
5+
using iText.Html2pdf.Css;
6+
using iText.Html2pdf.Html;
7+
using iText.Layout;
8+
using iText.Layout.Tagging;
9+
using iText.StyledXmlParser.Jsoup.Nodes;
10+
using iText.StyledXmlParser.Node.Impl.Jsoup.Node;
11+
using iText.Test;
12+
13+
namespace iText.Html2pdf.Attach.Impl.Tags {
14+
public class UlOlTagWorkerTest : ExtendedITextTest {
15+
[NUnit.Framework.Test]
16+
public virtual void LangAttrInUlOlForTaggedPdfTest() {
17+
Attributes attributes = new Attributes();
18+
attributes.Put(AttributeConstants.LANG, "en");
19+
iText.StyledXmlParser.Jsoup.Nodes.Element element = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
20+
.ValueOf(TagConstants.UL), TagConstants.UL, attributes);
21+
JsoupElementNode node = new JsoupElementNode(element);
22+
IDictionary<String, String> styles = new Dictionary<String, String>();
23+
styles.Put(CssConstants.WHITE_SPACE, CssConstants.NORMAL);
24+
styles.Put(CssConstants.TEXT_TRANSFORM, CssConstants.LOWERCASE);
25+
node.SetStyles(styles);
26+
ProcessorContext processorContext = new ProcessorContext(new ConverterProperties());
27+
UlOlTagWorker tagWorker = new UlOlTagWorker(node, processorContext);
28+
IPropertyContainer propertyContainer = tagWorker.GetElementResult();
29+
NUnit.Framework.Assert.IsTrue(propertyContainer is IAccessibleElement);
30+
String lang = ((IAccessibleElement)propertyContainer).GetAccessibilityProperties().GetLanguage();
31+
NUnit.Framework.Assert.AreEqual("en", lang);
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)