OSDN Git Service

Modify an addLine method
authordhrname <dhrname@users.sourceforge.jp>
Sat, 14 Feb 2015 12:46:24 +0000 (21:46 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Sat, 14 Feb 2015 12:46:24 +0000 (21:46 +0900)
org/w3c/dom/smil.js
tool/Spec/spec/SvgDomSpec.js

index 565bf46..a70e506 100644 (file)
@@ -168,6 +168,9 @@ base("$frame").mix ( {
       /*どちらのプロパティも未確認の場合、タイムラインは追加されない*/\r
       return false;\r
     }\r
+    if ( this.timelines.indexOf(obj) >= 0 ) {\r
+      this.removeLine(obj);\r
+    }\r
     this.timelines.push( obj );\r
     return true;\r
   },\r
index 4c17cdf..b5001f8 100644 (file)
@@ -2101,7 +2101,15 @@ describe("SMIL Animation Spec", function() {
       var timeline = frame.timelines[0];\r
       expect(timeline.begin).toBe(0);\r
       expect(timeline.activeTime).toBe(0);\r
-      \r
+      /*timelineの再追加*/\r
+      expect(frame.timelines[0]).toBe(timeline);\r
+      frame.addLine({begin:1, activeTime:1});\r
+      expect(frame.timelines[1]).not.toBe(timeline);\r
+      frame.addLine(timeline);\r
+      expect(frame.timelines[0]).not.toBe(timeline);\r
+      expect(frame.timelines[1]).toBe(timeline);\r
+\r
+      timeline = frame.timelines[0];\r
       frame.removeLine({});\r
       expect(frame.timelines[0]).toBe(timeline);\r
       frame.removeLine(timeline);\r
@@ -2407,15 +2415,34 @@ describe("SMIL Animation Spec", function() {
         obj.up().mix( {\r
                 begin: 1,\r
                 $activate: begin.$activate.up().mix( {\r
-                    dur: "12"\r
+                    end: begin.$activate.end.up().mix( {\r
+                       string: "1s"\r
+                      } )\r
                   } )\r
               })\r
               .listener( {\r
                 timeStamp: 0\r
               } );\r
         expect(obj.$1.begin).toBe(1);\r
-        expect(obj.$1.activeTime).toEqual(Math.floor(12000*obj.fpms));\r
+        expect(obj.$1.activeTime).toEqual(Math.floor(1000*obj.fpms) - 1);\r
+        expect(obj.$1.$activate.begin).toBe(obj.$1.begin);\r
+        expect(obj.timelines[0]).toBe(obj.$1);\r
 \r
+        obj.up().mix( {\r
+                begin: 1,\r
+                $activate: begin.$activate.up().mix( {\r
+                    end: begin.$activate.end.up().mix( {\r
+                       string: "1s"\r
+                      } )\r
+                  } )\r
+              })\r
+              .listener( {\r
+                timeStamp: 0\r
+              } );\r
+        expect(obj.$1.begin).toBe(1);\r
+        expect(obj.$1.activeTime).toEqual(Math.floor(1000*obj.fpms) - 1);\r
+        expect(obj.$1.$activate.begin).toBe(obj.$1.begin);\r
+        expect(obj.timelines[1]).toBe(obj.$1);\r
       } );\r
       /*無効同値クラスを調べておく (Equivalence partitioning, the following is the invalid partion)*/\r
       it("should be this for the value (the invalid partion)", function() {\r