From 0fc1b6081486f49c4eea8ee54626bea09ed5f439 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Thu, 18 Sep 2014 17:33:46 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud) 84312: Merged V4.2-BUG-FIX (4.2.4) to HEAD-BUG-FIX (5.0/Cloud) 84198: Merged DEV to V4.2-BUG-FIX (4.2.4) 84122: MNT-10730: In SelectNode() the third possible parameter is not evaluated properly - Now, true and false value will be handled as boolean. - Appropriate test was added. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@84655 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/search/DocumentNavigator.java | 6 +++ .../repo/search/DocumentNavigatorTest.java | 50 +++++++++++++++++++ .../alfresco/repo/search/SearchTestSuite.java | 1 + 3 files changed, 57 insertions(+) create mode 100644 source/test-java/org/alfresco/repo/search/DocumentNavigatorTest.java diff --git a/source/java/org/alfresco/repo/search/DocumentNavigator.java b/source/java/org/alfresco/repo/search/DocumentNavigator.java index 76cea7b737..0b96a9c971 100644 --- a/source/java/org/alfresco/repo/search/DocumentNavigator.java +++ b/source/java/org/alfresco/repo/search/DocumentNavigator.java @@ -368,6 +368,12 @@ public class DocumentNavigator extends DefaultNavigator implements NamedAccessNa // decode the localname localName = ISO9075.decode(localName); + // MNT-10730 + if (localName != null && (localName.equalsIgnoreCase("true") || localName.equalsIgnoreCase("false"))) + { + return Collections.singletonList(new Boolean(Boolean.parseBoolean(localName))).iterator(); + } + ChildAssociationRef assocRef = (ChildAssociationRef) contextNode; NodeRef childRef = assocRef.getChildRef(); QName qName = QName.createQName(namespaceURI, localName); diff --git a/source/test-java/org/alfresco/repo/search/DocumentNavigatorTest.java b/source/test-java/org/alfresco/repo/search/DocumentNavigatorTest.java new file mode 100644 index 0000000000..4d86d2944a --- /dev/null +++ b/source/test-java/org/alfresco/repo/search/DocumentNavigatorTest.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2005-2014 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.repo.search; + +import java.util.Iterator; + +import org.jaxen.UnsupportedAxisException; +import junit.framework.TestCase; + +public class DocumentNavigatorTest extends TestCase +{ + public void testGetChildAxisIterator() throws UnsupportedAxisException + { + try + { + // Check true + DocumentNavigator docNav = new DocumentNavigator(null, null, null, null, false, false); + Iterator nodeIter = docNav.getChildAxisIterator(null, "true", "", null); + assertNotNull(nodeIter); + boolean value = (Boolean) nodeIter.next(); + assertTrue("The true value should be returned. See MNT-10730", value); + + // Check false + nodeIter = docNav.getChildAxisIterator(null, "false", "", null); + assertNotNull(nodeIter); + value = (Boolean) nodeIter.next(); + assertFalse("The false value should be returned. See MNT-10730", value); + } + catch (NullPointerException exp) + { + fail("The boolean value should be returned. See MNT-10730"); + } + } +} \ No newline at end of file diff --git a/source/test-java/org/alfresco/repo/search/SearchTestSuite.java b/source/test-java/org/alfresco/repo/search/SearchTestSuite.java index ada267d42d..0ef106e385 100644 --- a/source/test-java/org/alfresco/repo/search/SearchTestSuite.java +++ b/source/test-java/org/alfresco/repo/search/SearchTestSuite.java @@ -51,6 +51,7 @@ public class SearchTestSuite extends TestSuite suite.addTestSuite(QueryRegisterComponentTest.class); suite.addTestSuite(SearcherComponentTest.class); suite.addTestSuite(SearchServiceTest.class); + suite.addTestSuite(DocumentNavigatorTest.class); suite.addTestSuite(ADMLuceneCategoryTest.class); suite.addTestSuite(ADMLuceneTest.class); suite.addTestSuite(ALF947Test.class);