From 0a50a2b111065adb4b1483a93853a9655fa82c18 Mon Sep 17 00:00:00 2001 From: Bartosz Janda Date: Sun, 26 Jun 2016 21:37:52 +0200 Subject: [PATCH] Added alignment unit test. --- .../size class => alignment}/Contents.json | 0 .../alignment/a_any.imageset/Contents.json | 41 +++++++++++ .../a_any.imageset}/image.png | Bin .../a_any.imageset}/image@2x.png | Bin .../a_any.imageset}/image@3x.png | Bin .../alignment/a_no.imageset}/Contents.json | 0 .../a_no.imageset}/green.png | Bin .../a_no.imageset}/green@2x.png | Bin .../a_no.imageset}/green@3x.png | Bin Images.xcassets/size class/Contents.json | 6 ++ .../sc_h_a&r.imageset/Contents.json | 0 .../sc_h_a&r.imageset}/green.png | Bin .../sc_h_a&r.imageset}/green@2x.png | Bin .../sc_h_a&r.imageset}/green@3x.png | Bin .../sc_h_a&r.imageset}/image.png | Bin .../sc_h_a&r.imageset}/image@2x.png | Bin .../sc_h_a&r.imageset}/image@3x.png | Bin .../sc_w_a&c.imageset/Contents.json | 0 .../sc_w_a&c.imageset}/green.png | Bin .../sc_w_a&c.imageset}/green@2x.png | Bin .../sc_w_a&c.imageset}/green@3x.png | Bin .../sc_w_a&c.imageset}/image.png | Bin .../sc_w_a&c.imageset}/image@2x.png | Bin .../sc_w_a&c.imageset}/image@3x.png | Bin .../sc_wh_a&r&c.imageset/Contents.json | 0 .../size class/sc_wh_a&r&c.imageset/blue.png | Bin .../sc_wh_a&r&c.imageset/blue@2x.png | Bin .../sc_wh_a&r&c.imageset/blue@3x.png | Bin .../size class/sc_wh_a&r&c.imageset/cyan.png | Bin .../sc_wh_a&r&c.imageset/cyan@2x.png | Bin .../sc_wh_a&r&c.imageset/cyan@3x.png | Bin .../sc_wh_a&r&c.imageset}/green.png | Bin .../sc_wh_a&r&c.imageset}/green@2x.png | Bin .../sc_wh_a&r&c.imageset}/green@3x.png | Bin .../size class/sc_wh_a&r&c.imageset/image.png | Bin 0 -> 459 bytes .../sc_wh_a&r&c.imageset/image@2x.png | Bin 0 -> 996 bytes .../sc_wh_a&r&c.imageset/image@3x.png | Bin 0 -> 1235 bytes Makefile | 1 + README.md | 2 +- .../old/i_template_def.imageset/Contents.json | 29 -------- .../Contents.json | 26 ------- .../i_template_original.imageset/green.png | Bin 454 -> 0 bytes .../i_template_original.imageset/green@2x.png | Bin 999 -> 0 bytes .../i_template_original.imageset/green@3x.png | Bin 1239 -> 0 bytes .../i_template_template.imageset/green.png | Bin 454 -> 0 bytes .../i_template_template.imageset/green@2x.png | Bin 999 -> 0 bytes .../i_template_template.imageset/green@3x.png | Bin 1239 -> 0 bytes acextract.xcodeproj/project.pbxproj | 4 ++ acextract/CoreUI.h | 13 +--- acextract/CoreUI_Swift.swift | 11 +-- acextractTests/AlignmentTests.swift | 64 ++++++++++++++++++ acextractTests/Assets.swift | 22 +++--- acextractTests/AssetsCatalogTests.swift | 10 ++- acextractTests/TemplateRenderingTests.swift | 10 +-- acextractTests/data/assets.car | Bin 0 -> 104347 bytes acextractTests/data/assets_ios.car | Bin 98385 -> 104347 bytes acextractTests/data/assets_ipad.car | Bin 81076 -> 87038 bytes acextractTests/data/assets_iphone.car | Bin 92862 -> 98824 bytes acextractTests/data/assets_mac.car | Bin 52080 -> 55785 bytes acextractTests/data/assets_tv.car | Bin 59234 -> 65196 bytes acextractTests/data/assets_watch.car | Bin 65102 -> 71064 bytes 61 files changed, 149 insertions(+), 90 deletions(-) rename Images.xcassets/{devices/size class => alignment}/Contents.json (100%) create mode 100644 Images.xcassets/alignment/a_any.imageset/Contents.json rename Images.xcassets/{devices/size class/sc_h_a&r.imageset => alignment/a_any.imageset}/image.png (100%) rename Images.xcassets/{devices/size class/sc_h_a&r.imageset => alignment/a_any.imageset}/image@2x.png (100%) rename Images.xcassets/{devices/size class/sc_h_a&r.imageset => alignment/a_any.imageset}/image@3x.png (100%) rename {Templates.xcassets/old/i_template_template.imageset => Images.xcassets/alignment/a_no.imageset}/Contents.json (100%) rename Images.xcassets/{devices/size class/sc_h_a&r.imageset => alignment/a_no.imageset}/green.png (100%) rename Images.xcassets/{devices/size class/sc_h_a&r.imageset => alignment/a_no.imageset}/green@2x.png (100%) rename Images.xcassets/{devices/size class/sc_h_a&r.imageset => alignment/a_no.imageset}/green@3x.png (100%) create mode 100644 Images.xcassets/size class/Contents.json rename Images.xcassets/{devices => }/size class/sc_h_a&r.imageset/Contents.json (100%) rename Images.xcassets/{devices/size class/sc_w_a&c.imageset => size class/sc_h_a&r.imageset}/green.png (100%) rename Images.xcassets/{devices/size class/sc_w_a&c.imageset => size class/sc_h_a&r.imageset}/green@2x.png (100%) rename Images.xcassets/{devices/size class/sc_w_a&c.imageset => size class/sc_h_a&r.imageset}/green@3x.png (100%) rename Images.xcassets/{devices/size class/sc_w_a&c.imageset => size class/sc_h_a&r.imageset}/image.png (100%) rename Images.xcassets/{devices/size class/sc_w_a&c.imageset => size class/sc_h_a&r.imageset}/image@2x.png (100%) rename Images.xcassets/{devices/size class/sc_w_a&c.imageset => size class/sc_h_a&r.imageset}/image@3x.png (100%) rename Images.xcassets/{devices => }/size class/sc_w_a&c.imageset/Contents.json (100%) rename Images.xcassets/{devices/size class/sc_wh_a&r&c.imageset => size class/sc_w_a&c.imageset}/green.png (100%) rename Images.xcassets/{devices/size class/sc_wh_a&r&c.imageset => size class/sc_w_a&c.imageset}/green@2x.png (100%) rename Images.xcassets/{devices/size class/sc_wh_a&r&c.imageset => size class/sc_w_a&c.imageset}/green@3x.png (100%) rename Images.xcassets/{devices/size class/sc_wh_a&r&c.imageset => size class/sc_w_a&c.imageset}/image.png (100%) rename Images.xcassets/{devices/size class/sc_wh_a&r&c.imageset => size class/sc_w_a&c.imageset}/image@2x.png (100%) rename Images.xcassets/{devices/size class/sc_wh_a&r&c.imageset => size class/sc_w_a&c.imageset}/image@3x.png (100%) rename Images.xcassets/{devices => }/size class/sc_wh_a&r&c.imageset/Contents.json (100%) rename Images.xcassets/{devices => }/size class/sc_wh_a&r&c.imageset/blue.png (100%) rename Images.xcassets/{devices => }/size class/sc_wh_a&r&c.imageset/blue@2x.png (100%) rename Images.xcassets/{devices => }/size class/sc_wh_a&r&c.imageset/blue@3x.png (100%) rename Images.xcassets/{devices => }/size class/sc_wh_a&r&c.imageset/cyan.png (100%) rename Images.xcassets/{devices => }/size class/sc_wh_a&r&c.imageset/cyan@2x.png (100%) rename Images.xcassets/{devices => }/size class/sc_wh_a&r&c.imageset/cyan@3x.png (100%) rename {Templates.xcassets/old/i_template_def.imageset => Images.xcassets/size class/sc_wh_a&r&c.imageset}/green.png (100%) rename {Templates.xcassets/old/i_template_def.imageset => Images.xcassets/size class/sc_wh_a&r&c.imageset}/green@2x.png (100%) rename {Templates.xcassets/old/i_template_def.imageset => Images.xcassets/size class/sc_wh_a&r&c.imageset}/green@3x.png (100%) create mode 100644 Images.xcassets/size class/sc_wh_a&r&c.imageset/image.png create mode 100644 Images.xcassets/size class/sc_wh_a&r&c.imageset/image@2x.png create mode 100644 Images.xcassets/size class/sc_wh_a&r&c.imageset/image@3x.png delete mode 100644 Templates.xcassets/old/i_template_def.imageset/Contents.json delete mode 100644 Templates.xcassets/old/i_template_original.imageset/Contents.json delete mode 100644 Templates.xcassets/old/i_template_original.imageset/green.png delete mode 100644 Templates.xcassets/old/i_template_original.imageset/green@2x.png delete mode 100644 Templates.xcassets/old/i_template_original.imageset/green@3x.png delete mode 100644 Templates.xcassets/old/i_template_template.imageset/green.png delete mode 100644 Templates.xcassets/old/i_template_template.imageset/green@2x.png delete mode 100644 Templates.xcassets/old/i_template_template.imageset/green@3x.png create mode 100644 acextractTests/AlignmentTests.swift create mode 100644 acextractTests/data/assets.car diff --git a/Images.xcassets/devices/size class/Contents.json b/Images.xcassets/alignment/Contents.json similarity index 100% rename from Images.xcassets/devices/size class/Contents.json rename to Images.xcassets/alignment/Contents.json diff --git a/Images.xcassets/alignment/a_any.imageset/Contents.json b/Images.xcassets/alignment/a_any.imageset/Contents.json new file mode 100644 index 0000000..1e623ef --- /dev/null +++ b/Images.xcassets/alignment/a_any.imageset/Contents.json @@ -0,0 +1,41 @@ +{ + "images" : [ + { + "alignment-insets" : { + "top" : 5, + "left" : 10, + "bottom" : 15, + "right" : 20 + }, + "idiom" : "universal", + "filename" : "image.png", + "scale" : "1x" + }, + { + "alignment-insets" : { + "top" : 6, + "left" : 12, + "bottom" : 18, + "right" : 24 + }, + "idiom" : "universal", + "filename" : "image@2x.png", + "scale" : "2x" + }, + { + "alignment-insets" : { + "top" : 12, + "left" : 24, + "bottom" : 36, + "right" : 48 + }, + "idiom" : "universal", + "filename" : "image@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Images.xcassets/devices/size class/sc_h_a&r.imageset/image.png b/Images.xcassets/alignment/a_any.imageset/image.png similarity index 100% rename from Images.xcassets/devices/size class/sc_h_a&r.imageset/image.png rename to Images.xcassets/alignment/a_any.imageset/image.png diff --git a/Images.xcassets/devices/size class/sc_h_a&r.imageset/image@2x.png b/Images.xcassets/alignment/a_any.imageset/image@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_h_a&r.imageset/image@2x.png rename to Images.xcassets/alignment/a_any.imageset/image@2x.png diff --git a/Images.xcassets/devices/size class/sc_h_a&r.imageset/image@3x.png b/Images.xcassets/alignment/a_any.imageset/image@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_h_a&r.imageset/image@3x.png rename to Images.xcassets/alignment/a_any.imageset/image@3x.png diff --git a/Templates.xcassets/old/i_template_template.imageset/Contents.json b/Images.xcassets/alignment/a_no.imageset/Contents.json similarity index 100% rename from Templates.xcassets/old/i_template_template.imageset/Contents.json rename to Images.xcassets/alignment/a_no.imageset/Contents.json diff --git a/Images.xcassets/devices/size class/sc_h_a&r.imageset/green.png b/Images.xcassets/alignment/a_no.imageset/green.png similarity index 100% rename from Images.xcassets/devices/size class/sc_h_a&r.imageset/green.png rename to Images.xcassets/alignment/a_no.imageset/green.png diff --git a/Images.xcassets/devices/size class/sc_h_a&r.imageset/green@2x.png b/Images.xcassets/alignment/a_no.imageset/green@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_h_a&r.imageset/green@2x.png rename to Images.xcassets/alignment/a_no.imageset/green@2x.png diff --git a/Images.xcassets/devices/size class/sc_h_a&r.imageset/green@3x.png b/Images.xcassets/alignment/a_no.imageset/green@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_h_a&r.imageset/green@3x.png rename to Images.xcassets/alignment/a_no.imageset/green@3x.png diff --git a/Images.xcassets/size class/Contents.json b/Images.xcassets/size class/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Images.xcassets/size class/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Images.xcassets/devices/size class/sc_h_a&r.imageset/Contents.json b/Images.xcassets/size class/sc_h_a&r.imageset/Contents.json similarity index 100% rename from Images.xcassets/devices/size class/sc_h_a&r.imageset/Contents.json rename to Images.xcassets/size class/sc_h_a&r.imageset/Contents.json diff --git a/Images.xcassets/devices/size class/sc_w_a&c.imageset/green.png b/Images.xcassets/size class/sc_h_a&r.imageset/green.png similarity index 100% rename from Images.xcassets/devices/size class/sc_w_a&c.imageset/green.png rename to Images.xcassets/size class/sc_h_a&r.imageset/green.png diff --git a/Images.xcassets/devices/size class/sc_w_a&c.imageset/green@2x.png b/Images.xcassets/size class/sc_h_a&r.imageset/green@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_w_a&c.imageset/green@2x.png rename to Images.xcassets/size class/sc_h_a&r.imageset/green@2x.png diff --git a/Images.xcassets/devices/size class/sc_w_a&c.imageset/green@3x.png b/Images.xcassets/size class/sc_h_a&r.imageset/green@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_w_a&c.imageset/green@3x.png rename to Images.xcassets/size class/sc_h_a&r.imageset/green@3x.png diff --git a/Images.xcassets/devices/size class/sc_w_a&c.imageset/image.png b/Images.xcassets/size class/sc_h_a&r.imageset/image.png similarity index 100% rename from Images.xcassets/devices/size class/sc_w_a&c.imageset/image.png rename to Images.xcassets/size class/sc_h_a&r.imageset/image.png diff --git a/Images.xcassets/devices/size class/sc_w_a&c.imageset/image@2x.png b/Images.xcassets/size class/sc_h_a&r.imageset/image@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_w_a&c.imageset/image@2x.png rename to Images.xcassets/size class/sc_h_a&r.imageset/image@2x.png diff --git a/Images.xcassets/devices/size class/sc_w_a&c.imageset/image@3x.png b/Images.xcassets/size class/sc_h_a&r.imageset/image@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_w_a&c.imageset/image@3x.png rename to Images.xcassets/size class/sc_h_a&r.imageset/image@3x.png diff --git a/Images.xcassets/devices/size class/sc_w_a&c.imageset/Contents.json b/Images.xcassets/size class/sc_w_a&c.imageset/Contents.json similarity index 100% rename from Images.xcassets/devices/size class/sc_w_a&c.imageset/Contents.json rename to Images.xcassets/size class/sc_w_a&c.imageset/Contents.json diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/green.png b/Images.xcassets/size class/sc_w_a&c.imageset/green.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/green.png rename to Images.xcassets/size class/sc_w_a&c.imageset/green.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/green@2x.png b/Images.xcassets/size class/sc_w_a&c.imageset/green@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/green@2x.png rename to Images.xcassets/size class/sc_w_a&c.imageset/green@2x.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/green@3x.png b/Images.xcassets/size class/sc_w_a&c.imageset/green@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/green@3x.png rename to Images.xcassets/size class/sc_w_a&c.imageset/green@3x.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/image.png b/Images.xcassets/size class/sc_w_a&c.imageset/image.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/image.png rename to Images.xcassets/size class/sc_w_a&c.imageset/image.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/image@2x.png b/Images.xcassets/size class/sc_w_a&c.imageset/image@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/image@2x.png rename to Images.xcassets/size class/sc_w_a&c.imageset/image@2x.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/image@3x.png b/Images.xcassets/size class/sc_w_a&c.imageset/image@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/image@3x.png rename to Images.xcassets/size class/sc_w_a&c.imageset/image@3x.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/Contents.json b/Images.xcassets/size class/sc_wh_a&r&c.imageset/Contents.json similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/Contents.json rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/Contents.json diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/blue.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/blue.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/blue.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/blue.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/blue@2x.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/blue@2x.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@2x.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/blue@3x.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/blue@3x.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@3x.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/cyan.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/cyan.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/cyan@2x.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@2x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/cyan@2x.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@2x.png diff --git a/Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/cyan@3x.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@3x.png similarity index 100% rename from Images.xcassets/devices/size class/sc_wh_a&r&c.imageset/cyan@3x.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@3x.png diff --git a/Templates.xcassets/old/i_template_def.imageset/green.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/green.png similarity index 100% rename from Templates.xcassets/old/i_template_def.imageset/green.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/green.png diff --git a/Templates.xcassets/old/i_template_def.imageset/green@2x.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/green@2x.png similarity index 100% rename from Templates.xcassets/old/i_template_def.imageset/green@2x.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/green@2x.png diff --git a/Templates.xcassets/old/i_template_def.imageset/green@3x.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/green@3x.png similarity index 100% rename from Templates.xcassets/old/i_template_def.imageset/green@3x.png rename to Images.xcassets/size class/sc_wh_a&r&c.imageset/green@3x.png diff --git a/Images.xcassets/size class/sc_wh_a&r&c.imageset/image.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/image.png new file mode 100644 index 0000000000000000000000000000000000000000..8ffa9d4572231ba999f1c60eb39fd0775d892fea GIT binary patch literal 459 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwQhfmmClUFKZ4^T)gGbEzKIX^cyHLnE7WngeFN=+~Wk`vNJ$0^|@k*fjXyI+lHGPZv?6=nmXgmr#gvkQWf&~<;!PGuknk|#0A(7$!Nv20oW%v!Da>{YiRfGYip<+2`HyM83cD=nZoRD7_HN?JyRToSE}VUa<9O!$Te7Px8%?aA hP4U|=)5|w+FSGFr?^^v^@27&o)YH|^Wt~$(698Xmui^jz literal 0 HcmV?d00001 diff --git a/Images.xcassets/size class/sc_wh_a&r&c.imageset/image@2x.png b/Images.xcassets/size class/sc_wh_a&r&c.imageset/image@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..61df2950ac75debbb47fec3d2e0604239f05d760 GIT binary patch literal 996 zcmeAS@N?(olHy`uVBq!ia0vp^DIm~)o$Kot;wa*Fey!MHCYe=+ zd?qewJU1D#4GiBZRT=LPGCwe3X4?sdkLfRBerBFJxZ7XuMsByso^%WKm3#gzw*JXi zn;&|8K@;nh?sDZ%3%UFomLIU%z?s9)-zfTy&-A!^g7^)_dyMRi?LV7d9Fw^Icgvn> zT&ns0T5rNFRt3l!9}i43nK|)(P|KPSiE_IS)vYTJo|nCRX2o9nb&-~0oSpVlR-D+# zwue>j+2zKVum7zY)*leta9y)>e`{pgUsZ!saUZp^A2p{=IbiKI`)2c*PoZhnU9R_M zTroR!`}WUL>#Z!hxmzOh(vK~6b$T?3=l7AbU#72{GQ+z3^vweilH1i%=gj=C6?^gR zCDFK)xw9uN_0H=td;GQG`~Ip5+x&OR4-{sfUsZXR%f2Ch=Ye@l>31Wqot|?`>+!dU zvuENjX+{c0-i}HCvfZzGGhh zNw2?&iS2-mlVfASWF;Pk&R42D3VLyegSoh7xU(g2bvd|CJmxafLFb$HIai6t68~k? z`SpY0txW<7Df+7h^zRj)T| zp-JQEUpK`0w3oVg$u|Z+-?PEb^JVg1iIoRd8Z70qU@M!uw&A=(cgO9Q=3(nDueg#g zZc&$2Y+I`JCn4mQYmEFdYtd)jrt4RloH7$kf80J*UNgqZy!YYy#C|0?Ag`|O^TeiO zS6IW?CDoHv z5n;JbJK^@smz=jtwR^>4+dcQZ4(va$t~g}=`2%vwk0k$2 z^ZS>u`k&*a*brT}yd{Nk|GRduezVbCm6xzSFKNjamx|`)$F?6>`8oCm_t(uEgJ){2 zk-0AYfZOhQl*rv*6AxWgk)QR)_r)LnH4lV;xo+^U`%!87l6`sgQM*O%F1znV)fN8z z^dwpOqTII+#dgaNJzReL>92Pex&J(W%U~h*=idACt)=o2%r{ud8otXdPv1P(ui@O5 z+nN6oZF_VWy$?uj2xQ+5&aQ38zif|dh@X7F>ivZKs(-m^()}3!up6B;y8FI&@@!Dq N;_2$=vd$@?2>`<}F8Kfe literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile index 306a413..a4bf4ce 100644 --- a/Makefile +++ b/Makefile @@ -58,6 +58,7 @@ ios: --target-device iphone \ --compile $(PWD) \ Images.xcassets + cp $(ASSETS) $(DATA)/assets.car mv $(ASSETS) $(DATA)/assets_ios.car mac: diff --git a/README.md b/README.md index e19fe54..17b58e2 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ or ## Todo: - [x] Size class - [x] Rendering -- [ ] Alignment +- [x] Alignment - [ ] Slicing - [ ] Memory - [ ] Graphics diff --git a/Templates.xcassets/old/i_template_def.imageset/Contents.json b/Templates.xcassets/old/i_template_def.imageset/Contents.json deleted file mode 100644 index d99cb41..0000000 --- a/Templates.xcassets/old/i_template_def.imageset/Contents.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "green.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "green@2x.png", - "scale" : "2x" - }, - { - "alignment-insets" : { - "top" : 9, - "left" : 10, - "bottom" : 11, - "right" : 12 - }, - "idiom" : "universal", - "filename" : "green@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Templates.xcassets/old/i_template_original.imageset/Contents.json b/Templates.xcassets/old/i_template_original.imageset/Contents.json deleted file mode 100644 index 8f28396..0000000 --- a/Templates.xcassets/old/i_template_original.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "green.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "green@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "green@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "original" - } -} \ No newline at end of file diff --git a/Templates.xcassets/old/i_template_original.imageset/green.png b/Templates.xcassets/old/i_template_original.imageset/green.png deleted file mode 100644 index 645826c155b7e3e2f31511e1cb97ca933beb05b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwQhfml_aa;bp!$2Xm%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1QfAwN$cQNcGcdFqq+Xa)vGMNb#Ukc@k8Z#nug8H%tySbtV0M$o^h zvx3>|%^rd2MaLDVxcE8U@i<{n>gXHNq^(@?>EAl_%J_R*V!x=y2Ro?06zz{l=&HW+ z)%$Dx?!%kSJ~vzs*}ds#%jetAy@Efe?L7OnBujANHJd=2XH`eO z-SX{sUH9E3PhygxZ`XJ3*s}VWu|cnD?^SG?sG`8g>EXa6G@*e7lWF94B9Emn_Lx+A zn;`p|&5vCUUNA^GpqAXaF43d?>WX>GtcZ!@Bnbwe+AR57bt-&>6TEBDWZO#q+Zy4DR7N{t?8|$A1S7x4dpB6naH+{`+pPazC zJN64Nzul{vk+t|-k-E`48&#FwlN%mV1e3`@;to zlPy@!J>tx4%YM*vBy%s{&%WI?W+!7T3W^_z8EmsO6ycJ*5$2|>l3*<(V!k7P8mIIf z^*qlnjlB~L4OW|{3qm%dzwx6#8({IS0{&8>0 z>qO0~*_;uKWsR)YHP=U^A8_@V#pk}Otm>tE=<%BiH!t0mTVJ`ypC^2(o@&_>z4fKh zvc)bP0l+XkKr46jR diff --git a/Templates.xcassets/old/i_template_original.imageset/green@3x.png b/Templates.xcassets/old/i_template_original.imageset/green@3x.png deleted file mode 100644 index 0c4df1a50f5e43c4975441995e0f3e2c1a52f5ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1239 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPq51+6VZ_D;i3P2&X%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1QfAwN$cQNcGcdFqq+Xa)urBTpB{kcwMx@7ViAM~XCjd~atd-En}I zHP*?IkvlGc7v4^kNm;+JyAFpE2|Td?nAy5Ibh zWrA1RRF7Vn3w$3Ap8p(~!L06}-f>S}G)zgCS@*$-^DiT<8Ty)c{9K#(bOGO8KmDTa zzoy;^!L3vEE8jQn|H~7%rS`%6OudQ1?NdGS8}uD6@66gi&JTjTtEv8F8F-H1Hxsdu9O zO0RwzW3u>~zqIy!&U;qkq93$6?)^P>t3*yKW%K`_9gl57PWaWP@e36^w+RUd4cxy- zb?TOo!2RFVr)~)g-0!0`bxUBS`-;jtl3`cY@AXz)8-C^g^rnzYSxP&O{$Jpn`c=r$ zf_-Y3C6nYd9`82Qp+X*>^h`MHyy1!sajbs|__W@*v&LAni%ghM3u|8-d$rs7PEnlH>b*Td&mm)Kie)&A!Ar77e2+Na{z z_5El6+P(kVhW7czJ4Nh@Dr3%-_se~lzn%F(#fR$s_r=2E6L=GZZ!p^Zu(X~1wuGr< z*<>&kwQhfml_aa;bp!$2Xm%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1QfAwN$cQNcGcdFqq+Xa)vGMNb#Ukc@k8Z#nug8H%tySbtV0M$o^h zvx3>|%^rd2MaLDVxcE8U@i<{n>gXHNq^(@?>EAl_%J_R*V!x=y2Ro?06zz{l=&HW+ z)%$Dx?!%kSJ~vzs*}ds#%jetAy@Efe?L7OnBujANHJd=2XH`eO z-SX{sUH9E3PhygxZ`XJ3*s}VWu|cnD?^SG?sG`8g>EXa6G@*e7lWF94B9Emn_Lx+A zn;`p|&5vCUUNA^GpqAXaF43d?>WX>GtcZ!@Bnbwe+AR57bt-&>6TEBDWZO#q+Zy4DR7N{t?8|$A1S7x4dpB6naH+{`+pPazC zJN64Nzul{vk+t|-k-E`48&#FwlN%mV1e3`@;to zlPy@!J>tx4%YM*vBy%s{&%WI?W+!7T3W^_z8EmsO6ycJ*5$2|>l3*<(V!k7P8mIIf z^*qlnjlB~L4OW|{3qm%dzwx6#8({IS0{&8>0 z>qO0~*_;uKWsR)YHP=U^A8_@V#pk}Otm>tE=<%BiH!t0mTVJ`ypC^2(o@&_>z4fKh zvc)bP0l+XkKr46jR diff --git a/Templates.xcassets/old/i_template_template.imageset/green@3x.png b/Templates.xcassets/old/i_template_template.imageset/green@3x.png deleted file mode 100644 index 0c4df1a50f5e43c4975441995e0f3e2c1a52f5ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1239 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPq51+6VZ_D;i3P2&X%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1QfAwN$cQNcGcdFqq+Xa)urBTpB{kcwMx@7ViAM~XCjd~atd-En}I zHP*?IkvlGc7v4^kNm;+JyAFpE2|Td?nAy5Ibh zWrA1RRF7Vn3w$3Ap8p(~!L06}-f>S}G)zgCS@*$-^DiT<8Ty)c{9K#(bOGO8KmDTa zzoy;^!L3vEE8jQn|H~7%rS`%6OudQ1?NdGS8}uD6@66gi&JTjTtEv8F8F-H1Hxsdu9O zO0RwzW3u>~zqIy!&U;qkq93$6?)^P>t3*yKW%K`_9gl57PWaWP@e36^w+RUd4cxy- zb?TOo!2RFVr)~)g-0!0`bxUBS`-;jtl3`cY@AXz)8-C^g^rnzYSxP&O{$Jpn`c=r$ zf_-Y3C6nYd9`82Qp+X*>^h`MHyy1!sajbs|__W@*v&LAni%ghM3u|8-d$rs7PEnlH>b*Td&mm)Kie)&A!Ar77e2+Na{z z_5El6+P(kVhW7czJ4Nh@Dr3%-_se~lzn%F(#fR$s_r=2E6L=GZZ!p^Zu(X~1wuGr< z* - -typedef struct CUIImageInsets { - CGFloat bottom; - CGFloat left; - CGFloat top; - CGFloat right; -} CUIImageInsets; +@import Foundation; typedef NS_ENUM(NSInteger, CUIDeviceIdiom) { CUIDeviceIdiomUniversal = 0, @@ -84,8 +77,8 @@ typedef NS_ENUM(NSInteger, CUIImageType) { @property(readonly, nonatomic) CUIResizingMode resizingMode; @property(readonly, nonatomic) int blendMode; @property(readonly, nonatomic) double opacity; -@property(readonly, nonatomic) CUIImageInsets alignmentEdgeInsets; -@property(readonly, nonatomic) CUIImageInsets edgeInsets; +@property(readonly, nonatomic) NSEdgeInsets alignmentEdgeInsets; +@property(readonly, nonatomic) NSEdgeInsets edgeInsets; @property(readonly, nonatomic) CUIImageType imageType; @property(readonly, nonatomic) double scale; @property(readonly, nonatomic) struct CGSize size; diff --git a/acextract/CoreUI_Swift.swift b/acextract/CoreUI_Swift.swift index 2bddd8f..d697e88 100644 --- a/acextract/CoreUI_Swift.swift +++ b/acextract/CoreUI_Swift.swift @@ -79,11 +79,12 @@ extension ScaleFactor: NameStringConvertible { } // MARK: - CoreUI Extensions -// MARK: CUIImageInsets -extension CUIImageInsets: CustomStringConvertible { - public var description: String { - return "(\(top),\(left),\(bottom),\(right))" - } +extension NSEdgeInsets: Equatable { } +public func == (lhs: NSEdgeInsets, rhs: NSEdgeInsets) -> Bool { + return lhs.top == rhs.top + && lhs.left == rhs.left + && lhs.bottom == rhs.bottom + && lhs.right == rhs.right } // MARK: CUIDeviceIdiom diff --git a/acextractTests/AlignmentTests.swift b/acextractTests/AlignmentTests.swift new file mode 100644 index 0000000..aab915a --- /dev/null +++ b/acextractTests/AlignmentTests.swift @@ -0,0 +1,64 @@ +// +// AlignmentTests.swift +// acextract +// +// Created by Bartosz Janda on 26.06.2016. +// Copyright © 2016 Bartosz Janda. All rights reserved. +// + +import XCTest + +class AlignmentTests: XCTestCase { + // Image Alignment + func testNoAlignment() { + let imageSet = assetsContainer.iOS.imageSet(withName: "a_no") + let images = imageSet.namedImages + XCTAssertEqual(images.count, 3) + if let image = images.filter({ return $0.scale == 1.0 }).first { + XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets()) + XCTAssertEqual(image.acImageName, "a_no.png") + } else { + XCTFail("Cannot find image") + } + + if let image = images.filter({ return $0.scale == 2.0 }).first { + XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets()) + XCTAssertEqual(image.acImageName, "a_no@2x.png") + } else { + XCTFail("Cannot find image") + } + + if let image = images.filter({ return $0.scale == 3.0 }).first { + XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets()) + XCTAssertEqual(image.acImageName, "a_no@3x.png") + } else { + XCTFail("Cannot find image") + } + } + + func testAnyAlignment() { + let imageSet = assetsContainer.iOS.imageSet(withName: "a_any") + let images = imageSet.namedImages + XCTAssertEqual(images.count, 3) + if let image = images.filter({ return $0.scale == 1.0 }).first { + XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets(top: 5, left: 10, bottom: 15, right: 20)) + XCTAssertEqual(image.acImageName, "a_any.png") + } else { + XCTFail("Cannot find image") + } + + if let image = images.filter({ return $0.scale == 2.0 }).first { + XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets(top: 3, left: 6, bottom: 9, right: 12)) + XCTAssertEqual(image.acImageName, "a_any@2x.png") + } else { + XCTFail("Cannot find image") + } + + if let image = images.filter({ return $0.scale == 3.0 }).first { + XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets(top: 4, left: 8, bottom: 12, right: 16)) + XCTAssertEqual(image.acImageName, "a_any@3x.png") + } else { + XCTFail("Cannot find image") + } + } +} diff --git a/acextractTests/Assets.swift b/acextractTests/Assets.swift index 1ad1cff..d8e6402 100644 --- a/acextractTests/Assets.swift +++ b/acextractTests/Assets.swift @@ -8,28 +8,34 @@ import Foundation -let testBundleIdentifer = "com.bjanda.acextractTests" -let testBundle = NSBundle(identifier: testBundleIdentifer) - enum Asset: String { + // MARK: Cases case iOS = "data/assets_ios" case iPhone = "data/assets_iphone" case iPad = "data/assets_ipad" case macOS = "data/assets_mac" case tvOS = "data/assets_tv" case watchOS = "data/assets_watch" + case assets = "data/assets" + // MARK: Properties var path: String { - guard let bundle = testBundle else { - fatalError("Missing bundle") - } - - guard let path = bundle.pathForResource(self.rawValue, ofType: "car") else { + guard let path = Asset.path(catalog: self) else { fatalError("Missing car file") } return path } + + // MARK: Static + static let bundleIdentifer = "com.bjanda.acextractTests" + static let bundle = NSBundle(identifier: bundleIdentifer)! + static func path(name name: String) -> String? { + return bundle.pathForResource(name, ofType: "car") + } + static func path(catalog catalog: Asset) -> String? { + return path(name: catalog.rawValue) + } } struct AssetsContainer { diff --git a/acextractTests/AssetsCatalogTests.swift b/acextractTests/AssetsCatalogTests.swift index 2e8f6db..7f7f788 100644 --- a/acextractTests/AssetsCatalogTests.swift +++ b/acextractTests/AssetsCatalogTests.swift @@ -24,7 +24,7 @@ class AssetsCatalogTests: XCTestCase { */ func testCreateAssetsCatalog01() { do { - _ = try AssetsCatalog(path: Asset.iOS.path) + _ = try AssetsCatalog(path: Asset.assets.path) } catch { XCTFail("Cannot create AssetsCatalog object") } @@ -48,7 +48,7 @@ class AssetsCatalogTests: XCTestCase { Incorrect file. */ func testCreateAssetsCatalog03() { - guard let path = testBundle?.pathForResource("data/fake_assets", ofType: nil) else { + guard let path = Asset.bundle.pathForResource("data/fake_assets", ofType: nil) else { XCTFail("Cannot find fake asset") return } @@ -69,8 +69,7 @@ class AssetsCatalogTests: XCTestCase { func testOperation01() { do { let operation = FakeOperation() - let assetsCatalog = try AssetsCatalog(path: Asset.iOS.path) - try assetsCatalog.performOperation(operation) + try assetsContainer.iOS.performOperation(operation) XCTAssertTrue(operation.executed) } catch { XCTFail("Unknown exception \(error)") @@ -84,8 +83,7 @@ class AssetsCatalogTests: XCTestCase { do { let operation1 = FakeOperation() let operation2 = FakeOperation() - let assetsCatalog = try AssetsCatalog(path: Asset.iOS.path) - try assetsCatalog.performOperations([operation1, operation2]) + try assetsContainer.iOS.performOperations([operation1, operation2]) XCTAssertTrue(operation1.executed) XCTAssertTrue(operation2.executed) } catch { diff --git a/acextractTests/TemplateRenderingTests.swift b/acextractTests/TemplateRenderingTests.swift index fd8264b..18c4016 100644 --- a/acextractTests/TemplateRenderingTests.swift +++ b/acextractTests/TemplateRenderingTests.swift @@ -46,14 +46,14 @@ class TemplateRenderingTests: XCTestCase { } else { XCTFail("Cannot find image") } - + if let image = images.filter({ return $0.scale == 2.0 }).first { XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.Original) XCTAssertEqual(image.acImageName, "r_original@2x.png") } else { XCTFail("Cannot find image") } - + if let image = images.filter({ return $0.scale == 3.0 }).first { XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.Original) XCTAssertEqual(image.acImageName, "r_original@3x.png") @@ -61,7 +61,7 @@ class TemplateRenderingTests: XCTestCase { XCTFail("Cannot find image") } } - + func testTemplate() { let imageSet = assetsContainer.iOS.imageSet(withName: "r_template") let images = imageSet.namedImages @@ -72,14 +72,14 @@ class TemplateRenderingTests: XCTestCase { } else { XCTFail("Cannot find image") } - + if let image = images.filter({ return $0.scale == 2.0 }).first { XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.Template) XCTAssertEqual(image.acImageName, "r_template@2x.png") } else { XCTFail("Cannot find image") } - + if let image = images.filter({ return $0.scale == 3.0 }).first { XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.Template) XCTAssertEqual(image.acImageName, "r_template@3x.png") diff --git a/acextractTests/data/assets.car b/acextractTests/data/assets.car new file mode 100644 index 0000000000000000000000000000000000000000..88dc5a30cb1af298a1df348163415b6a862c3bcf GIT binary patch literal 104347 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 literal 0 HcmV?d00001 diff --git a/acextractTests/data/assets_ios.car b/acextractTests/data/assets_ios.car index 2ff1e3a39da57fd9a97886f732795b48416c6128..88dc5a30cb1af298a1df348163415b6a862c3bcf 100644 GIT binary patch delta 8918 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 T&L=C(FCaC)`ecF?CJ6cuKb{^k delta 5620 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 diff --git a/acextractTests/data/assets_ipad.car b/acextractTests/data/assets_ipad.car index 9bef16edcfefa4d591cccffb430c2533d6f8d081..aa5a3cca2f9a0bd87a25c53c7fd030a5c090a58c 100644 GIT binary patch delta 11045 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�~rarC6k^kDgNG$ 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 delta 6372 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 HaWei6v~4<( diff --git a/acextractTests/data/assets_iphone.car b/acextractTests/data/assets_iphone.car index 2ef4ed5ca2cb63dfacf55ae22ba17f27ff167cd8..76b13b2ca9342e6983e880cd3ddd25633808e7de 100644 GIT binary patch delta 8746 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 HE%^EGR~e1= diff --git a/acextractTests/data/assets_mac.car b/acextractTests/data/assets_mac.car index d16f15aff9eb71cb0ea04c3ae5bd50b53012a890..775fb3c3d904a9ab482cf2aef0f8bc2495035af5 100644 GIT binary patch literal 55785 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 diff --git a/acextractTests/data/assets_tv.car b/acextractTests/data/assets_tv.car index d0b5dc20bf885007d5cb20a90eb50784dc91eead..e3ea4da70cc96d1437473e5fec2f945159f4b05d 100644 GIT binary patch delta 10588 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 diff --git a/acextractTests/data/assets_watch.car b/acextractTests/data/assets_watch.car index f5a9aeca49a07818e7fe021cbb454d8e706e1f7a..466320694fd25c866065835d84cf3b2d2ea1d1a3 100644 GIT binary patch delta 10781 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