| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These were clearly added just to shut up our own warning, and are now
unnecessary and misleading to future maintainers.
There's one barely-related change: InputStreamReader and OutputStreamWriter
are very similar, and this patch makes them more similar, and adds a few
missing modifiers from their fields.
Change-Id: I959011f914ff215e92bbfa41c1bac66465803685
|
| |
| |
| |
| |
| |
| |
| | |
I've fixed a few typos, and removed a few of the more egregiously nonsensical
or incorrect comments that were nearby.
Change-Id: I35851baebd532f949cc269f4738a26eeb9b6e697
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
optional fields from callbacks."
Merge commit '7713b900d12c7a46334db46b33fbe848167189dd' into dalvik-dev
* commit '7713b900d12c7a46334db46b33fbe848167189dd':
Fixing namespace+prefix mode in Expat and removing optional fields from callbacks.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
callbacks.
The first part is related to bug 6632:
http://code.google.com/p/android/issues/detail?id=6632
I added these optional fields back when I was originally updating
the XML parser for Froyo. I've decided to remove them to simplify
migrating between Android and the RI. It should also save some
object allocations.
Note that the RI v5 and the RI v6 behave differently for optional
values on attributes; this motivated me to add the otherwise
unfortunate assertOneOf() method to the testcase. (We behave more
like RI v6, which is to supply the values upon request)
Change-Id: Icfa5d29976a86bf194b3ed7c0d9e2275c3bff9dd
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '312752642a4539788952260fc517d286f6a6202e' into dalvik-dev
* commit '312752642a4539788952260fc517d286f6a6202e':
Fixing 10 of the XPath failures caused by a malformed Document.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
See bug 2518858.
This makes our XPath implementation fail the exact same tests
as the RI's. (which we assume is also based on Apache Xalan)
Change-Id: I9a98323113c95609651e948ad11113f84ccd87ec
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
tests."
Merge commit 'f6976780647c6b9bb168cc7a9c5c8f4ce1425caf' into dalvik-dev
* commit 'f6976780647c6b9bb168cc7a9c5c8f4ce1425caf':
Exercising our XPath implementation with 279 of Jaxen's tests.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Both our implementation and the RIv6 fail 29 tests, 17 of which are
"could not find function" failures regarding our common lack of
support for the evaluate(), document(), upper-case() and lower-case()
functions.
In addition, our implementation fails 10 additional tests:
xml/moreover.xml / /child::node() "expected:<1> but was:<3>"
xml/simple.xml / string() "expected:<abd> but was:<"
xml/web.xml / /child::node() "expected:<web-app> but was:<>"
xml/web.xml / child::node() "expected:<web-app> but was:<>"
xml/web.xml / name(/child::node()) "expected:<web-app> but was:<>"
xml/web.xml / name(/child::node()) "expected:<web-app> but was:<>"
xml/web.xml / name(/node()) "expected:<web-app> but was:<>"
xml/web.xml / name(child::node()) "expected:<web-app> but was:<>"
xml/web.xml / name(node()) "expected:<web-app> but was:<>"
xml/web.xml /* name(../child::node()) "expected:<web-app> but was:<>"
Change-Id: Icb4695bbf826fd8f1c1ffae5e857169ff551f75e
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
DOMImplementation.getFeature().
Merge commit '271825415aa961bdd9f28a551575bcee6f27b4ab' into dalvik-dev
* commit '271825415aa961bdd9f28a551575bcee6f27b4ab':
Implementing Document.renameNode() and DOMImplementation.getFeature().
|
| |
| |
| |
| |
| |
| |
| | |
The rename code required moving some behaviour from ElementImpl
and AttrImpl up to their common superclass, NodeImpl.
Change-Id: I30910de146f525a5ecc837895ce5808928b858a0
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '92e01317d2428856cee52965745d17699a33be5a' into dalvik-dev
* commit '92e01317d2428856cee52965745d17699a33be5a':
Adding support for DOM3 attribute IDs and SchemaTypeInfos.
|
| |
| |
| |
| | |
Change-Id: I35e56ed989820df6b8fea36bbf81fe0314c76304
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '6f9b4d2bdccb2ea5e548b908e5cc882d262d0940' into dalvik-dev
* commit '6f9b4d2bdccb2ea5e548b908e5cc882d262d0940':
Implementing getBaseUri() for DOM.
|
| |
| |
| |
| |
| |
| |
| |
| | |
The tests for this uncover problems with the RI's implementation.
It does bizarre things with hashes, trashing the absolute URI and
returning a page-relative one (like "#foo").
Change-Id: Ib8af163a7b359e3f72a9c94eb3dd7e81e3a9a95c
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit '5c6839b24356ec7e5aa93a8272472c26abd3df30' into dalvik-dev
* commit '5c6839b24356ec7e5aa93a8272472c26abd3df30':
Implement adoptNode() and importNode().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
importNode() shares all of its implementation with Node.clone();
the only areas they differ are the ones we don't support. The
shared code is in 2 new methods, shallowCopy() and cloneOrImportNode(),
both based on the old clone() method.
Also removing some unnecessary "throws DOMException" clauses.
The tests for the new methods are slightly cumbersome. Most move/copy
nodes to another document, serialize that, and compare.
Change-Id: Id9fb076e020d8327a8f70da401af9bd95d7a3d1b
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
DOM nodes."
Merge commit '631bbbff684e9fe41a5a08ffa3e13fa3bed01212' into dalvik-dev
* commit '631bbbff684e9fe41a5a08ffa3e13fa3bed01212':
Adding support for getUserData() and setUserData() to DOM nodes.
|
| |
| |
| |
| |
| |
| | |
Also making sure both Document and DocumentType get assigned
a Document value when possible; this is necessary to store the
user data objects.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'acf4a11bf201ccdf4a4d2b429d33757556cdc0ed' into dalvik-dev
* commit 'acf4a11bf201ccdf4a4d2b429d33757556cdc0ed':
Implementing almost all of Document.normalizeDocument().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This follows the rules specified by DOMConfiguration. In particular:
- replacing CDATA nodes with text
- splitting CDATA nodes
- merging text nodes
- stripping comments
- detecting invalid characters
I haven't added the normalization code for XML validation or namespaces.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'ad71aa2046502db784a8c861b30b11ddf88044f1' into dalvik-dev
* commit 'ad71aa2046502db784a8c861b30b11ddf88044f1':
New implementation for DOMConfiguration.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This API is disgusting. Its not regular, not typesafe, sparsely
implemented and overly specific. I'm implementing the minimum I can
get away with - exactly the same route taken by the RI.
The Parameter stuff feels a little bit like overkill, but it allowed
me to group related chunks of code together and avoid long chains of
equalsIgnoreCase if statements.
This is necessary to implement Document.normalize(), one of the
last remaining APIs in DOMv3.
Also fixing our implementation of Node.normalize() and adding tests
to discover a bug in that code. Previously a document like this:
"<foo>abc<br>def</foo>"
Would be normalized to this:
"<foo>abcdef<br></foo>"
Which is a horrible bug! Yuck.
Implementation and tests for Document.normalize() are forthcoming.
|
|\ \
| |/
| |
| |
| |
| |
| | |
Merge commit 'dd55f1bba1216e91206255f31de587062ed115b6' into dalvik-dev
* commit 'dd55f1bba1216e91206255f31de587062ed115b6':
Adding tests to parse document attributes from the DOM.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This adds implementation and tests for these methods:
getInputEncoding(), getDocumentURI().
And tests for these methods:
getXmlEncoding(), getXmlVersion(), getXmlStandalone().
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
Text.isElementContentWhitespace() - Text.getWholeText() - Text.replaceWholeText()"
Merge commit '4795e033e5d93d72438d5004dd77ea82014f4657' into dalvik-dev
* commit '4795e033e5d93d72438d5004dd77ea82014f4657':
Implementing still more DOM API for text nodes.
|
| |
| |
| |
| |
| |
| | |
- Text.isElementContentWhitespace()
- Text.getWholeText()
- Text.replaceWholeText()
|
|\ \
| |/
| |
| |
| | |
Conflicts:
libcore/JavaLibrary.mk
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds the following APIs and tests:
- Node.isDefaultNamespace
- DomImplementation.hasFeature
- Node.isSupported
- Node.getFeature
- Node.isEqualNode
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Specifically, these methods on Node:
- setTextContent()
- isSameNode()
- lookupPrefix()
- lookupNamespaceURI()
In order to implement the last 2 I needed to fix our KXml parser
to include namespace attributes (ie. xmlns) in the pulled document.
Previously these were being elided.
Added a new testcase to verify our behaviour. It passes the RI. On
Dalvik we have a small issue with entity declarations.
Added a new testcase to verify Node.getBaseURI(). This test fails
because the method isn't implemented. Part of this test required
moving a method out to Support_Resources.java; in order to verify
the BaseURI the XML must be read from a file and not a stream (so
that path information exists).
Also...
- Style cleanup: changing static calls to look like static calls.
- Efficiency: avoiding concatenating with "" when unnecessary
- Duplication: sharing prefix validation between attributes and elements
- Renaming NodeTests to NodeTest for vogar-friendliness
Outstanding:
- I need to write a test for setTextContent().
|
| | |
|
| |
| |
| |
| |
| |
| | |
It appears that the original authors of this testing framework didn't really
know whether these files were supposed to be XML or HTML, UTF-8 or UTF-16, and
so there's quite a mess of processing in order to canonicalize them.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These changes move our XSLT code to passing 1898/3173 of the OASIS tests.
To contrast, the RI passes 2105/3173 tests.
Highlights:
- Implementing getTextContent() for nodes
- Removing validation during transforms. We don't support validation!
- Fixing attribute constraints to match the spec
- Fixing test suite to not confuse BaseURI from NamespaceURI
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I started off with a mission to remove uses of dalvik.annotation.* (stuff
like @TestTargetNew and other useless junk that just makes it harder to
stay in sync with upstream). I wrote a script to go through tests showing
me the diff between what we have and what upstream has, thinking that in
cases where upstream has also added tests, I may as well pull them in at
the same time...
...but I didn't realize how close we were to having dx fill its 1.5GiB heap.
After trying various alternatives, I decided to bite the bullet and break
core-tests up into one .jar per module. This adds parallelism back into this,
the slowest part of our build. (I can do even better, but I'll do that in a
separate patch, preferably after we've merged recent changes from master.)
Only a couple of dependencies were problematic: the worthless TestSuiteFactory
which already contained a comment suggesting we get rid of it, and the fact
that some tests -- most notably the concurrent ones -- also contained main
methods that started the JUnit tty-based TestRunner.
(In the long run, we want to be running the harmony tests directly from a
pristine "svn co" of upstream, using DalvikRunner. But this will be a big
help in the meantime, and starts the work of getting our current copy of
the tests into a state where we can start to extract any meaningful
changes/additions we've made.)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've already agreed @KnownFailure Must Die (to be replaced by expectations for
DalvikRunner), but some are -- I think -- obviously in need of investigation.
This patch removes @KnownFailure for all cases where the reason looks bogus.
I've left the @KnownFailure annotations in cases where I it looks "reasonable"
in that we simply haven't implemented the functionality (pack200, say), and
a few other cases. Those should probably be done in a separate patch that adds
expectations at the same time.
But these ones, I think, all need investigating. (There's a scary number of
Arabic-related bugs in here, given that we're supposed to be shipping Arabic
in froyo.)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently the test suite isn't wired-in to run automatically. Before
that can happen I need to devise a way for the device to grab the
OASIS test .zip from the Internet (or distribute it with Android).
In the interim the test can be run by hand by manually copying the
test suite to the device ("adb push") and running the test suite's
main method. This approach might be workable in our continuous
build.
Note that the RI does horribly at this test suite - in my run it
reports the following:
FAILURES!!!
Tests run: 3173, Failures: 338, Errors: 730
|
| |
| |
| |
| |
| |
| |
| | |
directly, rather than via a stream.
When I updated DocumentBuilder but not its subclass DocumentBuilderImpl,
some of the assumptions by DocumentBuilderImpl were violated.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
One of these tests still doesn't pass, but for a different reason know the
known failure is fixed, so I've removed that test's annotation too:
16) test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String(tests.api.javax.xml.parsers.SAXParserTest)junit.framework.AssertionFailedError
at tests.api.javax.xml.parsers.SAXParserTest.test_parseLjava_io_InputStreamLorg_xml_sax_helpers_DefaultHandlerLjava_lang_String(SAXParserTest.java:680)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.google.coretests.CoreTestRunnable.runInternally(CoreTestRunnable.java:129)
at com.google.coretests.CoreTestRunnable.run(CoreTestRunnable.java:92)
at com.google.coretests.CoreTestResult.runProtected(CoreTestResult.java:148)
at com.google.coretests.CoreTestSuite.run(CoreTestSuite.java:278)
at com.google.coretests.CoreTestRunner.doRun(CoreTestRunner.java:141)
at com.google.coretests.CoreTestRunner.start(CoreTestRunner.java:317)
at com.google.coretests.CoreTestRunner.main(CoreTestRunner.java:110)
at com.google.coretests.Main.main(Main.java:45)
at dalvik.system.NativeStart.main(Native Method)
|
| | |
|
|\ \ |
|
| |/
| |
| |
| |
| | |
We weren't correctly covering the case where namespaces were off, but
elements contained namespaces. See bug 2400596.
|
|/
|
|
|
|
|
|
|
| |
The trace package isn't accessible via our public API, so I've removed it.
Exception localization isn't worthwhile.
The Exslt code is a third-party extension that isn't necessary for the spec.
Several other classes and methods were unused; I used IntelliJ to find and remove these.
There's more that can go, but this is a fine first step.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New packages for Java 5 compatiblity:
- javax.xml.datatype
- javax.xml.namespace
- javax.xml.parsers (updated)
- javax.xml.transform
- javax.xml.transform.dom
- javax.xml.transform.sax
- javax.xml.transform.stream
- javax.xml.validation
- javax.xml.xpath
- org.w3c.dom (updated)
- org.w3c.dom.events
- org.w3c.dom.ls (load/save)
- org.w3c.dom.traversal
- org.w3c.dom.views
Omitted packages (that otherwise exist in Java 5)
- org.w3c.dom.bootstrap. This package facilitates pluggable implementations of DOM.
I'm not including this because there's little need for it in practice; and
because it adds an unnecessary layer of complexity. This decision is also
reflected in TransformerFactory.newInstance(), SAXParserFactory.newInstance(),
and DocumentBuilderFactory.newInstance().
New packages that pseudo-exist in Java 5
- org.w3c.dom.traversal
This package is referenced by Java 5's org.w3c.dom.ls.LSSerializerFilter, but
isn't included in the Javadoc API. Their spec isn't self-consistent.
- org.w3c.dom.views
This package is referenced by Java 5's org.w3c.dom.events.MouseEvent, but
isn't included in the Javadoc API. Another spec that isn't self-consistent.
This upgrades DOM from v2 to v3. http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/
This includes some API-incompatible changes; notably introducing new methods
into interfaces. I believe this is still safe, and Java made a similar backwards
incompatible change when they upgraded DOM from v2 to v3 between Java 1.4 and
Java 5.0.
Source for the new APIs comes from Apache XML commons.
http://svn.apache.org/repos/asf/xml/commons/trunk rev 901014.
This code currently contains several gaps in its implementation. In particular,
the impelementations of the DOM model classes (AttrImpl, ElementImpl, NodeImpl)
have DOM v3 methods that throw UnsupportedOperationExceptions. I intend to
address this problem in an immediate follow-up CL. All gaps are marked with TODO
comments, and they all live in the org.apache.harmony.xml.dom package.
To implement these APIs, I've included Apache Xalan. In a follow-up change
I intend to remove most of the code we don't actually need. I'm using their
pristine copy from SVN so Git can track our local modifications.
http://svn.apache.org/repos/asf/xalan/java/trunk rev 889881.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also changing our SAX codepath to always include values for optional parameters.
In testing Xalan's javax.xml.transform packages with the Expat source code, the
emitted documents were malformed. The underlying problem was that Xalan was
expecting optional parameters to be populated, but Expat was not populating them.
The spec says,
"Any or all of these may be provided, depending on the values of the http://xml.org/sax/features/namespaces and the http://xml.org/sax/features/namespace-prefixes properties:
* the Namespace URI and local name are required when the namespaces property is true (the default), and are optional when the namespaces property is false (if one is specified, both must be);
* the qualified name is required when the namespace-prefixes property is true, and is optional when the namespace-prefixes property is false (the default).
Although Xalan is technically at fault here, it may take forever to find all of
the places where these optional parameters are assumed to be present. Instead,
I'll just supply them which adds little overhead anyway.
See http://code.google.com/p/android/issues/detail?id=990
|
|
|
|
|
|
|
|
|
|
|
|
| |
Why does this idiom persist? It's ugly, and it's the least efficient way to do
it. (I found the ones in DecimalFormatSymbols while invesigating why
"new SimpleDateFormat()" burns through so many StringBuilders. grep(1) found
the rest.)
The DocumentBuilderImpl removes an unnecessary level of indirection, since we
implement Character.toString in terms of String.valueOf. (I wouldn't have
bothered except this was the only use of Character.toString in the core
libraries, and I added it myself a few weeks ago.)
|
|
|
|
|
|
|
|
|
|
|
| |
Every time a third-party developer gets their DefaultHandler method signatures
wrong (making it impossible for us to call them), they see this in the log and
complain that SAX parsing is broken on Android:
WARN/ExpatReader(704): DTD handlers aren't supported.
This patch adds that support -- even though no-one wants it -- so we can get
rid of the irrelevant log message.
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were allowing arbitrary characters to be output (which, surprisingly,
XML does not), and we weren't correctly escaping CDATA sections that
contained "]]>".
Pull out some of my test helpers from DocumentBuilderTest into Support_Xml,
because they're more generally useful when writing tests involving XML.
Also correct a bunch of spelling mistakes in XmlSerializer's javadoc, since
I happened to be reading through.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add tests for bug 2487, exploring the situations where "]]>" is and isn't
allowed. Fix the bug by changing KXmlParser so it pays attention to
whether it's dealing with normal text or text in an attribute value and
reports errors appropriately.
In order to pass the new tests, we also need to fix DocumentBuilder to
pay attention to its DocumentBuilderFactory's "coalescing" setting: whether
or not adjacent text/CDATA nodes should be coalesced.
This in turn fixes a @KnownFailure in DocumentBuilderFactoryTest: previously
we didn't allow the caller to turn "coalescing" off (though until my
previous patch, we didn't actually coalesce anyway). Now we support both,
and I've made coalescing the default, because bug reports tell us that's
what users want. It's how the RI behaves, too.
Bug: 2487
|