You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2018/11/11 11:39:11 UTC
[incubator-netbeans-html4j] 01/02: Merging changes done after first
attempt to release 1.6 into master
This is an automated email from the ASF dual-hosted git repository.
jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans-html4j.git
commit d7adae9e7b5ab2904b9fc292a04cbe3a4bc566ac
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Sun Nov 11 12:36:49 2018 +0100
Merging changes done after first attempt to release 1.6 into master
---
.../net/java/html/json/tests/KnockoutTest.java | 13 +++--
.../net/java/html/json/tests/PairModelTest.java | 67 ++++++++++++++++++++++
.../netbeans/html/json/impl/ModelProcessor.java | 4 +-
.../netbeans/html/json/impl/DeepChangeTest.java | 2 -
4 files changed, 77 insertions(+), 9 deletions(-)
diff --git a/json-tck/src/main/java/net/java/html/json/tests/KnockoutTest.java b/json-tck/src/main/java/net/java/html/json/tests/KnockoutTest.java
index e4cd463..f0bdcc3 100644
--- a/json-tck/src/main/java/net/java/html/json/tests/KnockoutTest.java
+++ b/json-tck/src/main/java/net/java/html/json/tests/KnockoutTest.java
@@ -300,10 +300,13 @@ public final class KnockoutTest {
""
);
- js = Models.bind(new KnockoutModel(), newContext());
- js.getArchetypes().add(new ArchetypeData("ko4j", "org.netbeans.html", "0.8.3", "ko4j", "ko4j", null));
- js.getArchetypes().add(new ArchetypeData("crud", "org.netbeans.html", "0.8.3", "crud", "crud", null));
- js.getArchetypes().add(new ArchetypeData("3rd", "org.netbeans.html", "0.8.3", "3rd", "3rd", null));
+ {
+ KnockoutModel km = new KnockoutModel();
+ km.getArchetypes().add(new ArchetypeData("ko4j", "org.netbeans.html", "0.8.3", "ko4j", "ko4j", null));
+ km.getArchetypes().add(new ArchetypeData("crud", "org.netbeans.html", "0.8.3", "crud", "crud", null));
+ km.getArchetypes().add(new ArchetypeData("3rd", "org.netbeans.html", "0.8.3", "3rd", "3rd", null));
+ js = Models.bind(km, newContext());
+ }
js.setArchetype(js.getArchetypes().get(1));
js.applyBindings();
@@ -339,7 +342,7 @@ public final class KnockoutTest {
if (preApply) {
js.applyBindings();
}
- js.setArchetype(new ArchetypeData());
+ js.setArchetype(Models.bind(new ArchetypeData(), newContext()));
js.getArchetype().setGroupId("org.netbeans.html");
js.applyBindings();
diff --git a/json-tck/src/test/java/net/java/html/json/tests/PairModelTest.java b/json-tck/src/test/java/net/java/html/json/tests/PairModelTest.java
new file mode 100644
index 0000000..b0e0da8
--- /dev/null
+++ b/json-tck/src/test/java/net/java/html/json/tests/PairModelTest.java
@@ -0,0 +1,67 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package net.java.html.json.tests;
+
+import java.lang.reflect.Field;
+import net.java.html.BrwsrCtx;
+import net.java.html.json.Models;
+import org.netbeans.html.context.spi.Contexts;
+import org.netbeans.html.json.spi.Proto;
+import org.testng.Assert;
+import static org.testng.Assert.assertEquals;
+import org.testng.annotations.Test;
+
+public class PairModelTest {
+
+ public PairModelTest() {
+ }
+
+ @Test
+ public void testClonePairs() throws Exception {
+ BrwsrCtx ctx = Contexts.newBuilder().build();
+ Pair p = new Pair(null, null, new Pair("First", "Last", null));
+
+ assertCtx(p, p.getNext());
+
+ Pair c = Models.bind(p, ctx);
+
+ assertCtx(c, c.getNext());
+ }
+
+ @Test
+ public void testCloneDefaultPair() throws Exception {
+ BrwsrCtx ctx = Contexts.newBuilder().build();
+ Pair p = new Pair();
+ Pair c = Models.bind(p, ctx);
+
+ Assert.assertNotNull(p.getNext(), "Default value of p.next is created");
+ Assert.assertNotNull(c.getNext(), "Default value of c.next is created");
+
+ assertCtx(p, p.getNext());
+ assertCtx(c, c.getNext());
+ }
+
+ private static void assertCtx(Pair first, Pair second) throws Exception {
+ Field field = first.getClass().getDeclaredField("proto");
+ field.setAccessible(true);
+ Proto proto1 = (Proto) field.get(first);
+ Proto proto2 = (Proto) field.get(second);
+ assertEquals(proto1.getContext(), proto2.getContext());
+ }
+}
diff --git a/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java b/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
index c8babca..25c4378 100644
--- a/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
+++ b/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
@@ -671,7 +671,7 @@ public final class ModelProcessor extends AbstractProcessor {
w.write(" public " + tn + " " + gs[0] + "() {\n");
w.write(" proto.accessProperty(\"" + p.name() + "\");\n");
if (isModel[0]) {
- w.write(" if (prop_" + p.name() + " == TYPE) prop_" + p.name() + " = new " + tn +"();\n");
+ w.write(" if (prop_" + p.name() + " == TYPE) prop_" + p.name() + " = net.java.html.json.Models.bind(new " + tn +"(), proto.getContext());\n");
}
w.write(" return (" + tn + ")prop_" + p.name() + ";\n");
w.write(" }\n");
@@ -1808,7 +1808,7 @@ public final class ModelProcessor extends AbstractProcessor {
w.write(" ret.prop_" + p.name() + " = " + gs[0] + "();\n");
continue;
}
- w.write(" ret.prop_" + p.name() + " = prop_" + p.name() + " == null ? null : prop_" + p.name() + " == TYPE ? TYPE : " + gs[0] + "().clone();\n");
+ w.write(" ret.prop_" + p.name() + " = prop_" + p.name() + " == null ? null : prop_" + p.name() + " == TYPE ? TYPE : net.java.html.json.Models.bind(" + gs[0] + "(), ctx);\n");
} else {
w.write(" proto.cloneList(ret." + gs[0] + "(), ctx, prop_" + p.name() + ");\n");
}
diff --git a/json/src/test/java/org/netbeans/html/json/impl/DeepChangeTest.java b/json/src/test/java/org/netbeans/html/json/impl/DeepChangeTest.java
index 4e3427a..ed3f3c2 100644
--- a/json/src/test/java/org/netbeans/html/json/impl/DeepChangeTest.java
+++ b/json/src/test/java/org/netbeans/html/json/impl/DeepChangeTest.java
@@ -179,8 +179,6 @@ public class DeepChangeTest {
One o = (One)v;
assertEquals(o.changes, 0, "No changes so far");
assertFalse(o.pb.isReadOnly(), "Normal property");
- assertEquals(o.get(), myY);
- assertSame(o.get(), realY);
final MyY newY = new MyY("Hi", 1);
p.setOne(newY);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists