فهرست منبع

Start clean site directory for every test

HelloZeroNet 8 سال پیش
والد
کامیت
8c09fd39db
36فایلهای تغییر یافته به همراه997 افزوده شده و 1 حذف شده
  1. 12 1
      src/Test/conftest.py
  2. 137 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/content.json
  3. 208 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/css/all.css
  4. 10 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data-default/data.json
  5. 25 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data-default/users/content-default.json
  6. 234 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/data.json
  7. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/autoupdate.png
  8. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/direct_domains.png
  9. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/domain.png
  10. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/memory.png
  11. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/multiuser.png
  12. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/progressbar.png
  13. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/slides.png
  14. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/slots_memory.png
  15. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/trayicon.png
  16. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zeroblog-comments.png
  17. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zeroid.png
  18. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zeroname.png
  19. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zerotalk-mark.png
  20. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zerotalk-upvote.png
  21. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zerotalk.png
  22. 1 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/optional.txt
  23. 14 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/test_include/content.json
  24. 37 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/test_include/data.json
  25. 15 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q/content.json
  26. 12 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q/data.json
  27. 24 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1CjfbrbwtP8Y2QjPy12vpTATkUT7oSiPQ9/content.json
  28. 12 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1CjfbrbwtP8Y2QjPy12vpTATkUT7oSiPQ9/data.json
  29. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1CjfbrbwtP8Y2QjPy12vpTATkUT7oSiPQ9/peanut-butter-jelly-time.gif
  30. 17 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json
  31. 12 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/data.json
  32. 30 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/content.json
  33. 54 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/dbschema.json
  34. BIN
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/img/loading.gif
  35. 137 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/index.html
  36. 6 0
      src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/js/all.js

+ 12 - 1
src/Test/conftest.py

@@ -4,6 +4,7 @@ import urllib
 import time
 import logging
 import json
+import shutil
 
 import pytest
 import mock
@@ -93,8 +94,18 @@ def resetTempSettings(request):
 
 
 @pytest.fixture()
-def site():
+def site(request):
     site = Site("1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT")
+
+    # Always use original data
+    assert "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT" in site.storage.getPath("")  # Make sure we dont delete everything
+    shutil.rmtree(site.storage.getPath(""), True)
+    shutil.copytree(site.storage.getPath("")+"-original", site.storage.getPath(""))
+    def cleanup():
+        site.storage.deleteFiles()
+    request.addfinalizer(cleanup)
+
+    site = Site("1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT")  # Create new Site object to load content.json files
     return site
 
 

+ 137 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/content.json

@@ -0,0 +1,137 @@
+{
+ "address": "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT",
+ "background-color": "white",
+ "description": "Blogging platform Demo",
+ "domain": "Blog.ZeroNetwork.bit",
+ "files": {
+  "css/all.css": {
+   "sha512": "65ddd3a2071a0f48c34783aa3b1bde4424bdea344630af05a237557a62bd55dc",
+   "size": 112710
+  },
+  "data-default/data.json": {
+   "sha512": "3f5c5a220bde41b464ab116cce0bd670dd0b4ff5fe4a73d1dffc4719140038f2",
+   "size": 196
+  },
+  "data-default/users/content-default.json": {
+   "sha512": "0603ce08f7abb92b3840ad0cf40e95ea0b3ed3511b31524d4d70e88adba83daa",
+   "size": 679
+  },
+  "data/data.json": {
+   "sha512": "0f2321c905b761a05c360a389e1de149d952b16097c4ccf8310158356e85fb52",
+   "size": 31126
+  },
+  "data/img/autoupdate.png": {
+   "sha512": "d2b4dc8e0da2861ea051c0c13490a4eccf8933d77383a5b43de447c49d816e71",
+   "size": 24460
+  },
+  "data/img/direct_domains.png": {
+   "sha512": "5f14b30c1852735ab329b22496b1e2ea751cb04704789443ad73a70587c59719",
+   "size": 16185
+  },
+  "data/img/domain.png": {
+   "sha512": "ce87e0831f4d1e95a95d7120ca4d33f8273c6fce9f5bbedf7209396ea0b57b6a",
+   "size": 11881
+  },
+  "data/img/memory.png": {
+   "sha512": "dd56515085b4a79b5809716f76f267ec3a204be3ee0d215591a77bf0f390fa4e",
+   "size": 12775
+  },
+  "data/img/multiuser.png": {
+   "sha512": "88e3f795f9b86583640867897de6efc14e1aa42f93e848ed1645213e6cc210c6",
+   "size": 29480
+  },
+  "data/img/progressbar.png": {
+   "sha512": "23d592ae386ce14158cec34d32a3556771725e331c14d5a4905c59e0fe980ebf",
+   "size": 13294
+  },
+  "data/img/slides.png": {
+   "sha512": "1933db3b90ab93465befa1bd0843babe38173975e306286e08151be9992f767e",
+   "size": 14439
+  },
+  "data/img/slots_memory.png": {
+   "sha512": "82a250e6da909d7f66341e5b5c443353958f86728cd3f06e988b6441e6847c29",
+   "size": 9488
+  },
+  "data/img/trayicon.png": {
+   "sha512": "e7ae65bf280f13fb7175c1293dad7d18f1fcb186ebc9e1e33850cdaccb897b8f",
+   "size": 19040
+  },
+  "dbschema.json": {
+   "sha512": "7b756e8e475d4d6b345a24e2ae14254f5c6f4aa67391a94491a026550fe00df8",
+   "size": 1529
+  },
+  "img/loading.gif": {
+   "sha512": "8a42b98962faea74618113166886be488c09dad10ca47fe97005edc5fb40cc00",
+   "size": 723
+  },
+  "index.html": {
+   "sha512": "c4039ebfc4cb6f116cac05e803a18644ed70404474a572f0d8473f4572f05df3",
+   "size": 4667
+  },
+  "js/all.js": {
+   "sha512": "034c97535f3c9b3fbebf2dcf61a38711dae762acf1a99168ae7ddc7e265f582c",
+   "size": 201178
+  }
+ },
+ "files_optional": {
+  "data/img/zeroblog-comments.png": {
+   "sha512": "efe4e815a260e555303e5c49e550a689d27a8361f64667bd4a91dbcccb83d2b4",
+   "size": 24001
+  },
+  "data/img/zeroid.png": {
+   "sha512": "b46d541a9e51ba2ddc8a49955b7debbc3b45fd13467d3c20ef104e9d938d052b",
+   "size": 18875
+  },
+  "data/img/zeroname.png": {
+   "sha512": "bab45a1bb2087b64e4f69f756b2ffa5ad39b7fdc48c83609cdde44028a7a155d",
+   "size": 36031
+  },
+  "data/img/zerotalk-mark.png": {
+   "sha512": "a335b2fedeb8d291ca68d3091f567c180628e80f41de4331a5feb19601d078af",
+   "size": 44862
+  },
+  "data/img/zerotalk-upvote.png": {
+   "sha512": "b1ffd7f948b4f99248dde7efe256c2efdfd997f7e876fb9734f986ef2b561732",
+   "size": 41092
+  },
+  "data/img/zerotalk.png": {
+   "sha512": "54d10497a1ffca9a4780092fd1bd158c15f639856d654d2eb33a42f9d8e33cd8",
+   "size": 26606
+  },
+  "data/optional.txt": {
+   "sha512": "c6f81db0e9f8206c971c9e5826e3ba823ffbb1a3a900f8047652a8bf78ea98fd",
+   "size": 6
+  }
+ },
+ "ignore": "((js|css)/(?!all.(js|css))|data/.*db|data/users/.*/.*|data/test_include/.*)",
+ "includes": {
+  "data/test_include/content.json": {
+   "added": 1424976057,
+   "files_allowed": "data.json",
+   "includes_allowed": false,
+   "max_size": 20000,
+   "signers": [ "15ik6LeBWnACWfaika1xqGapRZ1zh3JpCo" ],
+   "signers_required": 1,
+   "user_id": 47,
+   "user_name": "test"
+  },
+  "data/users/content.json": {
+   "signers": [ "1LSxsKfC9S9TVXGGNSM3vPHjyW82jgCX5f" ],
+   "signers_required": 1
+  }
+ },
+ "inner_path": "content.json",
+ "modified": 1455627530.109,
+ "optional": "(data/img/zero.*|data/optional.txt)",
+ "sign": [
+  56763270038560745436697526128861466167000101701098791135393385088076329237645,
+  46423470772308783254156002360537851856745613551416274134961612754829184383599
+ ],
+ "signers_sign": "HDNmWJHM2diYln4pkdL+qYOvgE7MdwayzeG+xEUZBgp1HtOjBJS+knDEVQsBkjcOPicDG2it1r6R1eQrmogqSP0=",
+ "signs": {
+  "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": "G/FMSzye50ajO+23QXkWG1BubOlDGj85qD6U4rg3H4eZNpVhb0o6M+l16HpFka+F/VUg+fYXlaZhLjlLj2tJ4HY="
+ },
+ "signs_required": 1,
+ "title": "ZeroBlog",
+ "zeronet_version": "0.3.6"
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 208 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/css/all.css


+ 10 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data-default/data.json

@@ -0,0 +1,10 @@
+{
+	"title": "MyZeroBlog",
+	"description": "My ZeroBlog.",
+	"links": "- [Source code](https://github.com/HelloZeroNet)",
+	"next_post_id": 1,
+	"demo": false,
+	"modified": 1432515193,
+	"post": [
+	]
+}

+ 25 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data-default/users/content-default.json

@@ -0,0 +1,25 @@
+{
+  "files": {}, 
+  "ignore": ".*", 
+  "modified": 1432466966.003, 
+  "signs": {
+    "1BLogC9LN4oPDcruNz3qo1ysa133E9AGg8": "HChU28lG4MCnAiui6wDAaVCD4QUrgSy4zZ67+MMHidcUJRkLGnO3j4Eb1N0AWQ86nhSBwoOQf08Rha7gRyTDlAk="
+  }, 
+  "user_contents": {
+    "cert_signers": {
+      "zeroid.bit": [ "1iD5ZQJMNXu43w1qLB8sfdHVKppVMduGz" ]
+    }, 
+    "permission_rules": {
+      ".*": {
+        "files_allowed": "data.json", 
+        "max_size": 10000
+      }, 
+      "bitid/.*@zeroid.bit": { "max_size": 40000 }, 
+      "bitmsg/.*@zeroid.bit": { "max_size": 15000 }
+    }, 
+    "permissions": {
+      "banexample@zeroid.bit": false, 
+      "nofish@zeroid.bit": { "max_size": 20000 }
+    }
+  }
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 234 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/data.json


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/autoupdate.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/direct_domains.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/domain.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/memory.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/multiuser.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/progressbar.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/slides.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/slots_memory.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/trayicon.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zeroblog-comments.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zeroid.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zeroname.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zerotalk-mark.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zerotalk-upvote.png


BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/img/zerotalk.png


+ 1 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/optional.txt

@@ -0,0 +1 @@
+hello!

+ 14 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/test_include/content.json

@@ -0,0 +1,14 @@
+{
+ "address": "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT",
+ "files": {
+  "data.json": {
+   "sha512": "369d4e780cc80504285f13774ca327fe725eed2d813aad229e62356b07365906",
+   "size": 505
+  }
+ },
+ "inner_path": "data/test_include/content.json",
+ "modified": 1455627532.816,
+ "signs": {
+  "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": "HO9fdfTZUqwp8j0WfimcopME7Ki7qHWfrTP7VT/jyFGZWkiL3H7wfBZfNYTG2H48foa+O8X3KMZnFcdsUXsEn60="
+ }
+}

+ 37 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/test_include/data.json

@@ -0,0 +1,37 @@
+{
+	"next_topic_id": 1,
+	"topics": [],
+	"next_message_id": 5,
+	"comments": {
+		"1@2": [
+			{
+				"comment_id": 1,
+				"body": "New user test!",
+				"added": 1423442049
+			},
+			{
+				"comment_id": 2,
+				"body": "test 321",
+				"added": 1423531445
+			},
+			{
+				"comment_id": 3,
+				"body": "0.2.4 test.",
+				"added": 1424133003
+			}
+		]
+	},
+	"topic_votes": {
+		"1@2": 1,
+		"1@6": 1,
+		"1@69": 1,
+		"607@69": 1
+	},
+	"comment_votes": {
+		"35@2": 1,
+		"7@64": 1,
+		"8@64": 1,
+		"50@2": 1,
+		"13@77": 1
+	}
+}

+ 15 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q/content.json

@@ -0,0 +1,15 @@
+{
+  "cert_auth_type": "web", 
+  "cert_sign": "G4YB7y749GI6mJboyI7cNNfyMwOS0rcVXLmgq8qmCC4TCaRqup3TGWm8hzeru7+B5iXhq19Ruz286bNVKgNbnwU=", 
+  "cert_user_id": "newzeroid@zeroid.bit", 
+  "files": {
+    "data.json": {
+      "sha512": "2378ef20379f1db0c3e2a803bfbfda2b68515968b7e311ccc604406168969d34", 
+      "size": 161
+    }
+  }, 
+  "modified": 1432554679.913, 
+  "signs": {
+    "1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q": "GzX/Ht6ms1dOnqB3kVENvDnxpH+mqA0Zlg3hWy0iwgxpyxWcA4zgmwxcEH41BN9RrvCaxgSd2m1SG1/8qbQPzDY="
+  }
+}

+ 12 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1C5sgvWaSgfaTpV5kjBCnCiKtENNMYo69q/data.json

@@ -0,0 +1,12 @@
+{
+	"next_comment_id": 2,
+	"comment": [
+		{
+			"comment_id": 1,
+			"body": "Test me!",
+			"post_id": 40,
+			"date_added": 1432554679
+		}
+	],
+	"comment_vote": {}
+}

+ 24 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1CjfbrbwtP8Y2QjPy12vpTATkUT7oSiPQ9/content.json

@@ -0,0 +1,24 @@
+{
+ "address": "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT",
+ "cert_auth_type": "web",
+ "cert_sign": "HBsTrjTmv+zD1iY93tSci8n9DqdEtYwzxJmRppn4/b+RYktcANGm5tXPOb+Duw3AJcgWDcGUvQVgN1D9QAwIlCw=",
+ "cert_user_id": "toruser@zeroid.bit",
+ "files": {
+  "data.json": {
+   "sha512": "4868b5e6d70a55d137db71c2e276bda80437e0235ac670962acc238071296b45",
+   "size": 168
+  }
+ },
+ "files_optional": {
+  "peanut-butter-jelly-time.gif": {
+   "sha512": "a238fd27bda2a06f07f9f246954b34dcf82e6472aebdecc2c5dc1f01a50721ef",
+   "size": 1606
+  }
+ },
+ "inner_path": "data/users/1CjfbrbwtP8Y2QjPy12vpTATkUT7oSiPQ9/content.json",
+ "modified": 1455627534.538,
+ "optional": ".*\\.(jpg|png|gif)",
+ "signs": {
+  "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": "HIZ4xRMkGntdfcAtKdDPAHpuuW/wcufkDtiek0tfH3y8WUoUi3deAnidT9jqogFXyBiB4rzyOpRt9P44BrlVTk4="
+ }
+}

+ 12 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1CjfbrbwtP8Y2QjPy12vpTATkUT7oSiPQ9/data.json

@@ -0,0 +1,12 @@
+{
+	"next_comment_id": 2,
+	"comment": [
+		{
+			"comment_id": 1,
+			"body": "hello from Tor!",
+			"post_id": 38,
+			"date_added": 1432491109
+		}
+	],
+	"comment_vote": {}
+}

BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1CjfbrbwtP8Y2QjPy12vpTATkUT7oSiPQ9/peanut-butter-jelly-time.gif


+ 17 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json

@@ -0,0 +1,17 @@
+{
+ "address": "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT",
+ "cert_auth_type": "web",
+ "cert_sign": "HBsTrjTmv+zD1iY93tSci8n9DqdEtYwzxJmRppn4/b+RYktcANGm5tXPOb+Duw3AJcgWDcGUvQVgN1D9QAwIlCw=",
+ "cert_user_id": "toruser@zeroid.bit",
+ "files": {
+  "data.json": {
+   "sha512": "4868b5e6d70a55d137db71c2e276bda80437e0235ac670962acc238071296b45",
+   "size": 168
+  }
+ },
+ "inner_path": "data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
+ "modified": 1455627535.065,
+ "signs": {
+  "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": "G8u8uWLCcPSFlcEGJEM6LNEOeF+e0SNStXjECd3UKRvSXVB5H4so0RpSCmNxINmN1aLzy3+UTOHO7lvrua1lqzg="
+ }
+}

+ 12 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/data.json

@@ -0,0 +1,12 @@
+{
+	"next_comment_id": 2,
+	"comment": [
+		{
+			"comment_id": 1,
+			"body": "hello from Tor!",
+			"post_id": 38,
+			"date_added": 1432491109
+		}
+	],
+	"comment_vote": {}
+}

+ 30 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/data/users/content.json

@@ -0,0 +1,30 @@
+{
+ "address": "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT",
+ "files": {},
+ "ignore": ".*",
+ "inner_path": "data/users/content.json",
+ "modified": 1455627530.754,
+ "signs": {
+  "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": "HN7lUpibow9whR2O1C0reOX847Vs7PqCLuLfycV4cG++YlQ7xOxcYzEI3heSz7NnjVa63YU60mwndvxNEGow3Ag="
+ },
+ "user_contents": {
+  "cert_signers": {
+   "zeroid.bit": [ "1iD5ZQJMNXu43w1qLB8sfdHVKppVMduGz" ]
+  },
+  "permission_rules": {
+   ".*": {
+    "files_allowed": "data.json",
+    "files_allowed_optional": ".*\\.(png|jpg|gif)",
+    "max_size": 10000,
+    "max_size_optional": 10000000,
+    "signers": [ "14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet" ]
+   },
+   "bitid/.*@zeroid.bit": { "max_size": 40000 },
+   "bitmsg/.*@zeroid.bit": { "max_size": 15000 }
+  },
+  "permissions": {
+   "bad@zeroid.bit": false,
+   "nofish@zeroid.bit": { "max_size": 100000 }
+  }
+ }
+}

+ 54 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/dbschema.json

@@ -0,0 +1,54 @@
+{
+	"db_name": "ZeroID",
+	"db_file": "data/zeroblog.db",
+	"version": 2,
+	"maps": {
+		"users/.+/data.json": {
+			"to_table": [ 
+				"comment",
+				{"node": "comment_vote", "table": "comment_vote", "key_col": "comment_uri", "val_col": "vote"} 
+			]
+		},
+		"users/.+/content.json": { 
+			"to_keyvalue": [ "cert_user_id" ]
+		},
+		"data.json": {
+			"to_table": [ "post" ],
+			"to_keyvalue": [ "title", "description", "links", "next_post_id", "demo", "modified" ]
+		}
+
+	},
+	"tables": {
+		"comment": {
+			"cols": [
+				["comment_id", "INTEGER"], 
+				["post_id", "INTEGER"],
+				["body", "TEXT"],
+				["date_added", "INTEGER"],
+				["json_id", "INTEGER REFERENCES json (json_id)"]
+			],
+			"indexes": ["CREATE UNIQUE INDEX comment_key ON comment(json_id, comment_id)", "CREATE INDEX comment_post_id ON comment(post_id)"],
+			"schema_changed": 1426195823
+		},
+		"comment_vote": {
+			"cols": [
+				["comment_uri", "TEXT"],
+				["vote", "INTEGER"],
+				["json_id", "INTEGER REFERENCES json (json_id)"]
+			],
+			"indexes": ["CREATE INDEX comment_vote_comment_uri ON comment_vote(comment_uri)", "CREATE INDEX comment_vote_json_id ON comment_vote(json_id)"],
+			"schema_changed": 1426195822
+		},
+		"post": {
+			"cols": [
+				["post_id", "INTEGER"],
+				["title", "TEXT"],
+				["body", "TEXT"],
+				["date_published", "INTEGER"],
+				["json_id", "INTEGER REFERENCES json (json_id)"]
+			],
+			"indexes": ["CREATE UNIQUE INDEX post_uri ON post(json_id, post_id)", "CREATE INDEX post_id ON post(post_id)"],
+			"schema_changed": 1426195823
+		}
+	}
+}

BIN
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/img/loading.gif


+ 137 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/index.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <title>ZeroBlog Demo</title>
+ <meta charset="utf-8">
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <link rel="stylesheet" href="css/all.css" />
+ <base href="" target="_top" id="base">
+ <script>base.href = document.location.href.replace("/media", "").replace("index.html", "").replace(/[&?]wrapper=False/, "") // Make hashtags work</script>
+
+</head>
+<body>
+
+<!-- editbar -->
+<div class="editbar bottombar">
+ <ul class="markdown-help">
+  <li># H1</li>
+  <li>## H2</li>
+  <li>### H3</li>
+  <li><i>_italic_</i></li>
+  <li><b>**bold**</b></li>
+  <li>~~<s>strikethrough</s>~~</li>
+  <li>- Lists</li>
+  <li>1. Numbered lists</li>
+  <li>[Links](http://www.zeronet.io)</li>
+  <li>[References][1]<br>[1]: Can be used</li>
+  <li>![image alt](img/logo.png)</li>
+  <li>Inline <code>`code`</code></li>
+  <li><code>```python<br>print "Code block"<br>```</code></li>
+  <li>&gt; Quotes</li>
+  <li>--- Horizontal rule</li>
+ </ul>
+ <a href="#Markdown+help" class="icon-help">?</a> Editing: <span class="object">Post:21.body</span> <a href="#Save" class="button save">Save</a> <a href="#Delete" class="button button-delete button-outline delete">Delete</a> <a href="#Cancel" class="cancel">Cancel</a>
+</div>
+<!-- EOF editbar -->
+
+
+<!-- publishbar -->
+<div class="publishbar bottombar">
+ <small>Content changed</small> <a href="#Publish" class="button button-outline button-ok publish">Sign &amp; Publish new content</a>
+</div>
+<!-- EOF publishbar -->
+
+
+<!-- left -->
+<div class="left" data-object="Site">
+ <a href="?Home" class="nolink"><div class="avatar"> </div></a>
+ <h1><a href="?Home" class="nolink" data-editable="title" data-editable-mode="simple"></a></h1>
+ <h2 data-editable="description"></h2>
+ <hr>
+ <div class="links" data-editable="links">
+ </div>
+</div>
+<!-- EOF left -->
+
+
+<!-- right -->
+<div class="right">
+
+
+ <!-- Post listing -->
+ <div class="posts">
+  <a href="#New+Post" class="button button-outline new">Add new post</a>
+  
+  <!-- Template: post -->
+  <div class="post template" data-object="Post:23" data-deletable="True">
+   <h1 class="title"><a href="?Post:23:Title" data-editable="title" data-editable-mode="simple" class="editable">Title</a></h1>
+   <div class="details">
+    <span class="published" data-editable="date_published" data-editable-mode="timestamp">21 hours ago &middot; 2 min read</span>
+    <a href="?Post:23:title" class="comments-num">&middot; <div class='icon-comment'></div> <span class="num">3 comments</span></a>
+   </div>
+   <div class="body" data-editable="body">Body</div>
+   <a class="more" href="#"><span class='readmore'>Read more</span> →</a>
+  </div>
+  <!-- EOF Template: post -->
+ 
+ </div>
+ <!-- EOF Post listing -->
+
+ <!-- Single Post show -->
+ <div class="post post-full" data-object="Post:23" data-deletable="True">
+  <h1 class="title"><a href="?Post:23:Title" data-editable="title" data-editable-mode="simple" class="editable">Title</a></h1>
+  <div class="details"> <span class="published" data-editable="date_published" data-editable-mode="timestamp">21 hours ago &middot; 2 min read</span> </div>
+  <div class="body" data-editable="body"></div>
+
+  <h2 id="Comments"><span class="comments-num">0</span> Comments:</h2>
+  <!-- New comment -->
+  <div class="comment comment-new">
+   <div class="info">
+    <a class="user_name certselect" href="#Change+user" title='Change user'>Please sign in</a>
+    &#9473; 
+    <span class="added">new comment</span>
+   </div>
+   <div class="comment-body">
+    <a class="button button-submit button-certselect certselect" href="#Change+user"><div class='icon-profile'></div>Sign in as...</a>
+   	<textarea class="comment-textarea"></textarea>
+   	<a href="#Submit+comment" class="button button-submit button-submit-comment">Submit comment</a>
+   	<div style='float: right; margin-top: -6px'>
+     <div class="user-size user-size-used"></div>
+     <div class="user-size"></div>
+    </div>
+   	<div style="clear: both"></div>
+   </div>
+  </div>
+  <!-- EOF New comment -->
+
+  <div class="comments">
+   <!-- Template: Comment -->
+   <div class="comment template">
+    <div class="info">
+     <span class="user_name">user_name</span>
+     <!--<span class="cert_domain"></span>-->
+     &#9473; 
+     <span class="added">1 day ago</span>
+     <a href="#Reply" class="reply"><div class="icon icon-reply"></div> <span class="reply-text">Reply</span></a>
+    </div>
+    <div class="comment-body">Body</div>
+   </div>
+   <!-- EOF Template: Comment -->
+  </div>
+ </div>
+ <!-- EOF Single Post sho -->
+
+
+
+</div>
+<!-- EOF right -->
+
+
+<div style="clear: both"></div>
+
+
+<script type="text/javascript" src="js/all.js" async></script>
+
+</body>
+</html>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 6 - 0
src/Test/testdata/1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT-original/js/all.js


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است