Best JavaScript code snippet using storybook-root
toc.js
Source:toc.js
1/*2 * Licensed to the Apache Software Foundation (ASF) under one3 * or more contributor license agreements. See the NOTICE file4 * distributed with this work for additional information5 * regarding copyright ownership. The ASF licenses this file6 * to you under the Apache License, Version 2.0 (the7 * "License"); you may not use this file except in compliance8 * with the License. You may obtain a copy of the License at9 * 10 * http://www.apache.org/licenses/LICENSE-2.011 * 12 * Unless required by applicable law or agreed to in writing,13 * software distributed under the License is distributed on an14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY15 * KIND, either express or implied. See the License for the16 * specific language governing permissions and limitations17 * under the License.18 */19var toc = {20"title": "Apache FreeMarker Manual",21"url": "toc.html",22"isFile": true,23"children": [24{25"title": "What is Apache FreeMarker?",26"url": "index.html",27"isFile": true,28"children": [29]30}31,32{33"title": "Template Author's Guide",34"url": "dgui.html",35"isFile": true,36"children": [37{38"title": "Getting Started",39"url": "dgui_quickstart.html",40"isFile": true,41"children": [42{43"title": "Template + data-model = output",44"url": "dgui_quickstart_basics.html",45"isFile": true,46"children": [47]48}49,50{51"title": "The data-model at a glance",52"url": "dgui_quickstart_datamodel.html",53"isFile": true,54"children": [55]56}57,58{59"title": "The template at a glance",60"url": "dgui_quickstart_template.html",61"isFile": true,62"children": [63{64"title": "Some basic directives",65"url": "dgui_quickstart_template.html#autoid_2",66"isFile": false,67"children": [68{69"title": "The if directive",70"url": "dgui_quickstart_template.html#autoid_3",71"isFile": false,72"children": [73]74}75,76{77"title": "The list directive",78"url": "dgui_quickstart_template.html#autoid_4",79"isFile": false,80"children": [81]82}83,84{85"title": "The include directive",86"url": "dgui_quickstart_template.html#autoid_5",87"isFile": false,88"children": [89]90}91]92}93,94{95"title": "Using directives together",96"url": "dgui_quickstart_template.html#autoid_6",97"isFile": false,98"children": [99]100}101,102{103"title": "Using built-ins",104"url": "dgui_quickstart_template.html#autoid_7",105"isFile": false,106"children": [107]108}109,110{111"title": "Dealing with missing variables",112"url": "dgui_quickstart_template.html#autoid_8",113"isFile": false,114"children": [115]116}117,118{119"title": "Escaping for HTML, XML and other markup",120"url": "dgui_quickstart_template.html#dgui_quickstart_template_autoescaping",121"isFile": false,122"children": [123]124}125]126}127]128}129,130{131"title": "Values, Types",132"url": "dgui_datamodel.html",133"isFile": true,134"children": [135{136"title": "Basics",137"url": "dgui_datamodel_basics.html",138"isFile": true,139"children": [140{141"title": "What is a value?",142"url": "dgui_datamodel_basics.html#topic.value",143"isFile": false,144"children": [145]146}147,148{149"title": "What is type?",150"url": "dgui_datamodel_basics.html#autoid_9",151"isFile": false,152"children": [153]154}155,156{157"title": "The data-model is a hash",158"url": "dgui_datamodel_basics.html#autoid_10",159"isFile": false,160"children": [161]162}163]164}165,166{167"title": "The types",168"url": "dgui_datamodel_types.html",169"isFile": true,170"children": [171{172"title": "Scalars",173"url": "dgui_datamodel_types.html#dgui_datamodel_scalar",174"isFile": false,175"children": [176]177}178,179{180"title": "Containers",181"url": "dgui_datamodel_types.html#dgui_datamodel_container",182"isFile": false,183"children": [184]185}186,187{188"title": "Subroutines",189"url": "dgui_datamodel_types.html#autoid_11",190"isFile": false,191"children": [192{193"title": "Methods and functions",194"url": "dgui_datamodel_types.html#dgui_datamodel_method",195"isFile": false,196"children": [197]198}199,200{201"title": "User-defined directives",202"url": "dgui_datamodel_types.html#dgui_datamodel_userdefdir",203"isFile": false,204"children": [205]206}207,208{209"title": "Function/method versus user-defined directive",210"url": "dgui_datamodel_types.html#autoid_12",211"isFile": false,212"children": [213]214}215]216}217,218{219"title": "Miscellaneous",220"url": "dgui_datamodel_types.html#autoid_13",221"isFile": false,222"children": [223{224"title": "Nodes",225"url": "dgui_datamodel_types.html#dgui_datamodel_node",226"isFile": false,227"children": [228]229}230,231{232"title": "Markup output",233"url": "dgui_datamodel_types.html#dgui_datamodel_markupoutput",234"isFile": false,235"children": [236]237}238]239}240]241}242]243}244,245{246"title": "The Template",247"url": "dgui_template.html",248"isFile": true,249"children": [250{251"title": "Overall structure",252"url": "dgui_template_overallstructure.html",253"isFile": true,254"children": [255]256}257,258{259"title": "Directives",260"url": "dgui_template_directives.html",261"isFile": true,262"children": [263]264}265,266{267"title": "Expressions",268"url": "dgui_template_exp.html",269"isFile": true,270"children": [271{272"title": "Quick overview (cheat sheet)",273"url": "dgui_template_exp.html#exp_cheatsheet",274"isFile": false,275"children": [276]277}278,279{280"title": "Specify values directly",281"url": "dgui_template_exp.html#dgui_template_exp_direct",282"isFile": false,283"children": [284{285"title": "Strings",286"url": "dgui_template_exp.html#dgui_template_exp_direct_string",287"isFile": false,288"children": [289]290}291,292{293"title": "Numbers",294"url": "dgui_template_exp.html#dgui_template_exp_direct_number",295"isFile": false,296"children": [297]298}299,300{301"title": "Booleans",302"url": "dgui_template_exp.html#dgui_template_exp_direct_boolean",303"isFile": false,304"children": [305]306}307,308{309"title": "Sequences",310"url": "dgui_template_exp.html#dgui_template_exp_direct_seuqence",311"isFile": false,312"children": [313]314}315,316{317"title": "Ranges",318"url": "dgui_template_exp.html#dgui_template_exp_direct_ranges",319"isFile": false,320"children": [321]322}323,324{325"title": "Hashes",326"url": "dgui_template_exp.html#dgui_template_exp_direct_hash",327"isFile": false,328"children": [329]330}331]332}333,334{335"title": "Retrieving variables",336"url": "dgui_template_exp.html#dgui_template_exp_var",337"isFile": false,338"children": [339{340"title": "Top-level variables",341"url": "dgui_template_exp.html#dgui_template_exp_var_toplevel",342"isFile": false,343"children": [344]345}346,347{348"title": "Retrieving data from a hash",349"url": "dgui_template_exp.html#dgui_template_exp_var_hash",350"isFile": false,351"children": [352]353}354,355{356"title": "Retrieving data from a sequence",357"url": "dgui_template_exp.html#dgui_template_exp_var_sequence",358"isFile": false,359"children": [360]361}362,363{364"title": "Special variables",365"url": "dgui_template_exp.html#dgui_template_exp_var_special",366"isFile": false,367"children": [368]369}370]371}372,373{374"title": "String operations",375"url": "dgui_template_exp.html#dgui_template_exp_stringop",376"isFile": false,377"children": [378{379"title": "Interpolation and concatenation",380"url": "dgui_template_exp.html#dgui_template_exp_stringop_interpolation",381"isFile": false,382"children": [383]384}385,386{387"title": "Getting a character",388"url": "dgui_template_exp.html#dgui_template_exp_get_character",389"isFile": false,390"children": [391]392}393,394{395"title": "String slicing (substrings)",396"url": "dgui_template_exp.html#dgui_template_exp_stringop_slice",397"isFile": false,398"children": [399]400}401]402}403,404{405"title": "Sequence operations",406"url": "dgui_template_exp.html#dgui_template_exp_sequenceop",407"isFile": false,408"children": [409{410"title": "Concatenation",411"url": "dgui_template_exp.html#dgui_template_exp_sequenceop_cat",412"isFile": false,413"children": [414]415}416,417{418"title": "Sequence slicing",419"url": "dgui_template_exp.html#dgui_template_exp_seqenceop_slice",420"isFile": false,421"children": [422]423}424]425}426,427{428"title": "Hash operations",429"url": "dgui_template_exp.html#dgui_template_exp_hashop",430"isFile": false,431"children": [432{433"title": "Concatenation",434"url": "dgui_template_exp.html#dgui_template_exp_hashop_cat",435"isFile": false,436"children": [437]438}439]440}441,442{443"title": "Arithmetical calculations",444"url": "dgui_template_exp.html#dgui_template_exp_arit",445"isFile": false,446"children": [447]448}449,450{451"title": "Comparison",452"url": "dgui_template_exp.html#dgui_template_exp_comparison",453"isFile": false,454"children": [455]456}457,458{459"title": "Logical operations",460"url": "dgui_template_exp.html#dgui_template_exp_logicalop",461"isFile": false,462"children": [463]464}465,466{467"title": "Built-ins",468"url": "dgui_template_exp.html#dgui_template_exp_builtin",469"isFile": false,470"children": [471]472}473,474{475"title": "Method call",476"url": "dgui_template_exp.html#dgui_template_exp_methodcall",477"isFile": false,478"children": [479]480}481,482{483"title": "Handling missing values",484"url": "dgui_template_exp.html#dgui_template_exp_missing",485"isFile": false,486"children": [487{488"title": "Default value operator",489"url": "dgui_template_exp.html#dgui_template_exp_missing_default",490"isFile": false,491"children": [492]493}494,495{496"title": "Missing value test operator",497"url": "dgui_template_exp.html#dgui_template_exp_missing_test",498"isFile": false,499"children": [500]501}502]503}504,505{506"title": "Assignment Operators",507"url": "dgui_template_exp.html#dgui_template_exp_assignment",508"isFile": false,509"children": [510]511}512,513{514"title": "Parentheses",515"url": "dgui_template_exp.html#dgui_template_exp_parentheses",516"isFile": false,517"children": [518]519}520,521{522"title": "White-space in expressions",523"url": "dgui_template_exp.html#dgui_template_exp_whitespace",524"isFile": false,525"children": [526]527}528,529{530"title": "Comments in expressions",531"url": "dgui_template_exp.html#dgui_template_exp_comment",532"isFile": false,533"children": [534]535}536,537{538"title": "Operator precedence",539"url": "dgui_template_exp.html#dgui_template_exp_precedence",540"isFile": false,541"children": [542]543}544]545}546,547{548"title": "Interpolations",549"url": "dgui_template_valueinsertion.html",550"isFile": true,551"children": [552{553"title": "Overview",554"url": "dgui_template_valueinsertion.html#autoid_14",555"isFile": false,556"children": [557]558}559,560{561"title": "Automatic escaping",562"url": "dgui_template_valueinsertion.html#autoid_15",563"isFile": false,564"children": [565]566}567,568{569"title": "Guide to inserting numerical values",570"url": "dgui_template_valueinsertion.html#autoid_16",571"isFile": false,572"children": [573]574}575,576{577"title": "Guide to inserting date/time/date-time values",578"url": "dgui_template_valueinsertion.html#dgui_template_valueinserion_universal_date",579"isFile": false,580"children": [581]582}583,584{585"title": "Guide to inserting boolean values",586"url": "dgui_template_valueinsertion.html#autoid_17",587"isFile": false,588"children": [589]590}591,592{593"title": "Exact conversion rules",594"url": "dgui_template_valueinsertion.html#autoid_18",595"isFile": false,596"children": [597]598}599]600}601]602}603,604{605"title": "Miscellaneous",606"url": "dgui_misc.html",607"isFile": true,608"children": [609{610"title": "Defining your own directives",611"url": "dgui_misc_userdefdir.html",612"isFile": true,613"children": [614{615"title": "Basics",616"url": "dgui_misc_userdefdir.html#autoid_19",617"isFile": false,618"children": [619]620}621,622{623"title": "Parameters",624"url": "dgui_misc_userdefdir.html#autoid_20",625"isFile": false,626"children": [627]628}629,630{631"title": "Nested content",632"url": "dgui_misc_userdefdir.html#autoid_21",633"isFile": false,634"children": [635]636}637,638{639"title": "Macros with loop variables",640"url": "dgui_misc_userdefdir.html#dgui_misc_userdefdir_loopvar",641"isFile": false,642"children": [643]644}645,646{647"title": "More about user-defined directives and macros",648"url": "dgui_misc_userdefdir.html#autoid_22",649"isFile": false,650"children": [651]652}653]654}655,656{657"title": "Defining variables in the template",658"url": "dgui_misc_var.html",659"isFile": true,660"children": [661]662}663,664{665"title": "Namespaces",666"url": "dgui_misc_namespace.html",667"isFile": true,668"children": [669{670"title": "Creating a library",671"url": "dgui_misc_namespace.html#autoid_23",672"isFile": false,673"children": [674]675}676,677{678"title": "Writing the variables of imported namespaces",679"url": "dgui_misc_namespace.html#autoid_24",680"isFile": false,681"children": [682]683}684,685{686"title": "Namespaces and data-model",687"url": "dgui_misc_namespace.html#autoid_25",688"isFile": false,689"children": [690]691}692,693{694"title": "The life-cycle of namespaces",695"url": "dgui_misc_namespace.html#autoid_26",696"isFile": false,697"children": [698]699}700,701{702"title": "Auto-importing",703"url": "dgui_misc_namespace.html#autoid_27",704"isFile": false,705"children": [706]707}708]709}710,711{712"title": "Auto-escaping and output formats",713"url": "dgui_misc_autoescaping.html",714"isFile": true,715"children": [716{717"title": "Output formats",718"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat",719"isFile": false,720"children": [721]722}723,724{725"title": "Overriding the output format in templates",726"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_overrideoformat",727"isFile": false,728"children": [729]730}731,732{733"title": "Disabling auto escaping",734"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_disableautoesc",735"isFile": false,736"children": [737]738}739,740{741"title": "âMarkup outputâ values",742"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues",743"isFile": false,744"children": [745]746}747,748{749"title": "Further details and tricky cases",750"url": "dgui_misc_autoescaping.html#autoid_28",751"isFile": false,752"children": [753{754"title": "Non-markup output formats",755"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof",756"isFile": false,757"children": [758]759}760,761{762"title": "Inserting markup output values from other markups",763"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_mixingoutputformats",764"isFile": false,765"children": [766]767}768,769{770"title": "â+â\n operator",771"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_concatenation",772"isFile": false,773"children": [774]775}776,777{778"title": "${...} inside string literals",779"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_stringliteral",780"isFile": false,781"children": [782]783}784,785{786"title": "Combined output formats",787"url": "dgui_misc_autoescaping.html#autoid_29",788"isFile": false,789"children": [790]791}792]793}794]795}796,797{798"title": "White-space handling",799"url": "dgui_misc_whitespace.html",800"isFile": true,801"children": [802{803"title": "White-space stripping",804"url": "dgui_misc_whitespace.html#dgui_misc_whitespace_stripping",805"isFile": false,806"children": [807]808}809,810{811"title": "Using compress directive",812"url": "dgui_misc_whitespace.html#autoid_30",813"isFile": false,814"children": [815]816}817]818}819,820{821"title": "Alternative (square bracket) syntax",822"url": "dgui_misc_alternativesyntax.html",823"isFile": true,824"children": [825{826"title": "Square bracket tag syntax",827"url": "dgui_misc_alternativesyntax.html#dgui_misc_alternativesyntax_tag",828"isFile": false,829"children": [830]831}832,833{834"title": "Square bracket interpolation syntax",835"url": "dgui_misc_alternativesyntax.html#dgui_misc_alternativesyntax_interpolation",836"isFile": false,837"children": [838]839}840]841}842]843}844]845}846,847{848"title": "Programmer's Guide",849"url": "pgui.html",850"isFile": true,851"children": [852{853"title": "Getting Started",854"url": "pgui_quickstart.html",855"isFile": true,856"children": [857{858"title": "Create a configuration instance",859"url": "pgui_quickstart_createconfiguration.html",860"isFile": true,861"children": [862]863}864,865{866"title": "Create a data-model",867"url": "pgui_quickstart_createdatamodel.html",868"isFile": true,869"children": [870]871}872,873{874"title": "Get the template",875"url": "pgui_quickstart_gettemplate.html",876"isFile": true,877"children": [878]879}880,881{882"title": "Merging the template with the data-model",883"url": "pgui_quickstart_merge.html",884"isFile": true,885"children": [886]887}888,889{890"title": "Putting all together",891"url": "pgui_quickstart_all.html",892"isFile": true,893"children": [894]895}896]897}898,899{900"title": "The Data Model",901"url": "pgui_datamodel.html",902"isFile": true,903"children": [904{905"title": "Basics",906"url": "pgui_datamodel_basics.html",907"isFile": true,908"children": [909]910}911,912{913"title": "Scalars",914"url": "pgui_datamodel_scalar.html",915"isFile": true,916"children": [917{918"title": "âdate-likeâ types",919"url": "pgui_datamodel_scalar.html#autoid_31",920"isFile": false,921"children": [922]923}924]925}926,927{928"title": "Containers",929"url": "pgui_datamodel_parent.html",930"isFile": true,931"children": [932{933"title": "Hashes",934"url": "pgui_datamodel_parent.html#autoid_32",935"isFile": false,936"children": [937]938}939,940{941"title": "Sequences",942"url": "pgui_datamodel_parent.html#autoid_33",943"isFile": false,944"children": [945]946}947,948{949"title": "Collections",950"url": "pgui_datamodel_parent.html#autoid_34",951"isFile": false,952"children": [953]954}955]956}957,958{959"title": "Methods",960"url": "pgui_datamodel_method.html",961"isFile": true,962"children": [963]964}965,966{967"title": "Directives",968"url": "pgui_datamodel_directive.html",969"isFile": true,970"children": [971{972"title": "Example 1",973"url": "pgui_datamodel_directive.html#autoid_35",974"isFile": false,975"children": [976]977}978,979{980"title": "Example 2",981"url": "pgui_datamodel_directive.html#autoid_36",982"isFile": false,983"children": [984]985}986,987{988"title": "Notices",989"url": "pgui_datamodel_directive.html#autoid_37",990"isFile": false,991"children": [992]993}994]995}996,997{998"title": "Node variables",999"url": "pgui_datamodel_node.html",1000"isFile": true,1001"children": [1002]1003}1004,1005{1006"title": "Object wrappers",1007"url": "pgui_datamodel_objectWrapper.html",1008"isFile": true,1009"children": [1010{1011"title": "The default object wrapper",1012"url": "pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper",1013"isFile": false,1014"children": [1015]1016}1017,1018{1019"title": "Custom object wrapping example",1020"url": "pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample",1021"isFile": false,1022"children": [1023]1024}1025]1026}1027]1028}1029,1030{1031"title": "The Configuration",1032"url": "pgui_config.html",1033"isFile": true,1034"children": [1035{1036"title": "Basics",1037"url": "pgui_config_basics.html",1038"isFile": true,1039"children": [1040]1041}1042,1043{1044"title": "Shared variables",1045"url": "pgui_config_sharedvariables.html",1046"isFile": true,1047"children": [1048]1049}1050,1051{1052"title": "Settings",1053"url": "pgui_config_settings.html",1054"isFile": true,1055"children": [1056]1057}1058,1059{1060"title": "Template loading",1061"url": "pgui_config_templateloading.html",1062"isFile": true,1063"children": [1064{1065"title": "Template loaders",1066"url": "pgui_config_templateloading.html#autoid_38",1067"isFile": false,1068"children": [1069{1070"title": "Built-in template loaders",1071"url": "pgui_config_templateloading.html#autoid_39",1072"isFile": false,1073"children": [1074]1075}1076,1077{1078"title": "Loading templates from multiple locations",1079"url": "pgui_config_templateloading.html#autoid_40",1080"isFile": false,1081"children": [1082]1083}1084,1085{1086"title": "Loading templates from other sources",1087"url": "pgui_config_templateloading.html#autoid_41",1088"isFile": false,1089"children": [1090]1091}1092,1093{1094"title": "The template name (template path)",1095"url": "pgui_config_templateloading.html#autoid_42",1096"isFile": false,1097"children": [1098]1099}1100]1101}1102,1103{1104"title": "Template caching",1105"url": "pgui_config_templateloading.html#pgui_config_templateloading_caching",1106"isFile": false,1107"children": [1108]1109}1110]1111}1112,1113{1114"title": "Error handling",1115"url": "pgui_config_errorhandling.html",1116"isFile": true,1117"children": [1118{1119"title": "The possible exceptions",1120"url": "pgui_config_errorhandling.html#autoid_43",1121"isFile": false,1122"children": [1123]1124}1125,1126{1127"title": "Customizing the behavior regarding TemplatException-s",1128"url": "pgui_config_errorhandling.html#autoid_44",1129"isFile": false,1130"children": [1131]1132}1133,1134{1135"title": "TemplateException logging",1136"url": "pgui_config_errorhandling.html#autoid_45",1137"isFile": false,1138"children": [1139]1140}1141,1142{1143"title": "Explicit error handling in templates",1144"url": "pgui_config_errorhandling.html#autoid_46",1145"isFile": false,1146"children": [1147]1148}1149]1150}1151,1152{1153"title": "Template configurations",1154"url": "pgui_config_templateconfigurations.html",1155"isFile": true,1156"children": [1157]1158}1159,1160{1161"title": "Associating output formats with templates",1162"url": "pgui_config_outputformatsautoesc.html",1163"isFile": true,1164"children": [1165]1166}1167,1168{1169"title": "Custom number and date/time formats",1170"url": "pgui_config_custom_formats.html",1171"isFile": true,1172"children": [1173{1174"title": "Overview",1175"url": "pgui_config_custom_formats.html#autoid_50",1176"isFile": false,1177"children": [1178]1179}1180,1181{1182"title": "Simple custom number format example",1183"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_alg_simple",1184"isFile": false,1185"children": [1186]1187}1188,1189{1190"title": "Advanced custom number format example",1191"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_advanced",1192"isFile": false,1193"children": [1194]1195}1196,1197{1198"title": "Custom date/time format example",1199"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_date",1200"isFile": false,1201"children": [1202]1203}1204,1205{1206"title": "Alias format example",1207"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_alias",1208"isFile": false,1209"children": [1210]1211}1212,1213{1214"title": "Model-aware format example",1215"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_model_aware",1216"isFile": false,1217"children": [1218]1219}1220]1221}1222,1223{1224"title": "The \"incompatible improvements\" setting",1225"url": "pgui_config_incompatible_improvements.html",1226"isFile": true,1227"children": [1228{1229"title": "What does it do",1230"url": "pgui_config_incompatible_improvements.html#autoid_51",1231"isFile": false,1232"children": [1233]1234}1235,1236{1237"title": "How to set it",1238"url": "pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set",1239"isFile": false,1240"children": [1241]1242}1243]1244}1245]1246}1247,1248{1249"title": "Miscellaneous",1250"url": "pgui_misc.html",1251"isFile": true,1252"children": [1253{1254"title": "Variables, scopes",1255"url": "pgui_misc_var.html",1256"isFile": true,1257"children": [1258]1259}1260,1261{1262"title": "Charset issues",1263"url": "pgui_misc_charset.html",1264"isFile": true,1265"children": [1266{1267"title": "The charset of the input",1268"url": "pgui_misc_charset.html#autoid_52",1269"isFile": false,1270"children": [1271]1272}1273,1274{1275"title": "The charset of the output",1276"url": "pgui_misc_charset.html#autoid_53",1277"isFile": false,1278"children": [1279]1280}1281]1282}1283,1284{1285"title": "Multithreading",1286"url": "pgui_misc_multithreading.html",1287"isFile": true,1288"children": [1289]1290}1291,1292{1293"title": "Bean wrapper",1294"url": "pgui_misc_beanwrapper.html",1295"isFile": true,1296"children": [1297{1298"title": "TemplateHashModel functionality",1299"url": "pgui_misc_beanwrapper.html#beanswrapper_hash",1300"isFile": false,1301"children": [1302]1303}1304,1305{1306"title": "A word on security",1307"url": "pgui_misc_beanwrapper.html#autoid_54",1308"isFile": false,1309"children": [1310]1311}1312,1313{1314"title": "TemplateScalarModel functionality",1315"url": "pgui_misc_beanwrapper.html#autoid_55",1316"isFile": false,1317"children": [1318]1319}1320,1321{1322"title": "TemplateNumberModel functionality",1323"url": "pgui_misc_beanwrapper.html#autoid_56",1324"isFile": false,1325"children": [1326]1327}1328,1329{1330"title": "TemplateCollectionModel functionality",1331"url": "pgui_misc_beanwrapper.html#autoid_57",1332"isFile": false,1333"children": [1334]1335}1336,1337{1338"title": "TemplateSequenceModel functionality",1339"url": "pgui_misc_beanwrapper.html#autoid_58",1340"isFile": false,1341"children": [1342]1343}1344,1345{1346"title": "TemplateMethodModel functionality",1347"url": "pgui_misc_beanwrapper.html#beanswrapper_method",1348"isFile": false,1349"children": [1350]1351}1352,1353{1354"title": "Unwrapping rules",1355"url": "pgui_misc_beanwrapper.html#autoid_59",1356"isFile": false,1357"children": [1358]1359}1360,1361{1362"title": "Accessing static methods",1363"url": "pgui_misc_beanwrapper.html#autoid_60",1364"isFile": false,1365"children": [1366]1367}1368,1369{1370"title": "Accessing enums",1371"url": "pgui_misc_beanwrapper.html#jdk_15_enums",1372"isFile": false,1373"children": [1374]1375}1376]1377}1378,1379{1380"title": "Logging",1381"url": "pgui_misc_logging.html",1382"isFile": true,1383"children": [1384{1385"title": "Logging library selection",1386"url": "pgui_misc_logging.html#autoid_61",1387"isFile": false,1388"children": [1389]1390}1391,1392{1393"title": "Logging categories",1394"url": "pgui_misc_logging.html#autoid_62",1395"isFile": false,1396"children": [1397]1398}1399]1400}1401,1402{1403"title": "Using FreeMarker with servlets",1404"url": "pgui_misc_servlet.html",1405"isFile": true,1406"children": [1407{1408"title": "âModel 2â",1409"url": "pgui_misc_servlet.html#pgui_misc_servlet_model2",1410"isFile": false,1411"children": [1412]1413}1414,1415{1416"title": "Including content from other web application\n resources",1417"url": "pgui_misc_servlet.html#pgui_misc_servlet_include",1418"isFile": false,1419"children": [1420]1421}1422,1423{1424"title": "Using JSP custom tags in FTL",1425"url": "pgui_misc_servlet.html#autoid_63",1426"isFile": false,1427"children": [1428]1429}1430,1431{1432"title": "Embed FTL into JSP pages",1433"url": "pgui_misc_servlet.html#autoid_64",1434"isFile": false,1435"children": [1436]1437}1438]1439}1440,1441{1442"title": "Configuring security policy for FreeMarker",1443"url": "pgui_misc_secureenv.html",1444"isFile": true,1445"children": [1446]1447}1448,1449{1450"title": "Legacy XML wrapper implementation",1451"url": "pgui_misc_xml_legacy.html",1452"isFile": true,1453"children": [1454{1455"title": "TemplateScalarModel",1456"url": "pgui_misc_xml_legacy.html#autoid_65",1457"isFile": false,1458"children": [1459]1460}1461,1462{1463"title": "TemplateCollectionModel",1464"url": "pgui_misc_xml_legacy.html#autoid_66",1465"isFile": false,1466"children": [1467]1468}1469,1470{1471"title": "TemplateSequenceModel",1472"url": "pgui_misc_xml_legacy.html#autoid_67",1473"isFile": false,1474"children": [1475]1476}1477,1478{1479"title": "TemplateHashModel",1480"url": "pgui_misc_xml_legacy.html#autoid_68",1481"isFile": false,1482"children": [1483]1484}1485,1486{1487"title": "TemplateMethodModel",1488"url": "pgui_misc_xml_legacy.html#autoid_69",1489"isFile": false,1490"children": [1491]1492}1493,1494{1495"title": "Namespace handling",1496"url": "pgui_misc_xml_legacy.html#autoid_70",1497"isFile": false,1498"children": [1499]1500}1501]1502}1503,1504{1505"title": "Using FreeMarker with Ant",1506"url": "pgui_misc_ant.html",1507"isFile": true,1508"children": [1509]1510}1511,1512{1513"title": "Jython wrapper",1514"url": "pgui_misc_jythonwrapper.html",1515"isFile": true,1516"children": [1517{1518"title": "TemplateHashModel functionality",1519"url": "pgui_misc_jythonwrapper.html#autoid_71",1520"isFile": false,1521"children": [1522]1523}1524,1525{1526"title": "TemplateScalarModel functionality",1527"url": "pgui_misc_jythonwrapper.html#autoid_72",1528"isFile": false,1529"children": [1530]1531}1532,1533{1534"title": "TemplateBooleanModel functionality",1535"url": "pgui_misc_jythonwrapper.html#autoid_73",1536"isFile": false,1537"children": [1538]1539}1540,1541{1542"title": "TemplateNumberModel functionality",1543"url": "pgui_misc_jythonwrapper.html#autoid_74",1544"isFile": false,1545"children": [1546]1547}1548,1549{1550"title": "TemplateSequenceModel functionality",1551"url": "pgui_misc_jythonwrapper.html#autoid_75",1552"isFile": false,1553"children": [1554]1555}1556]1557}1558]1559}1560]1561}1562,1563{1564"title": "Template Language Reference",1565"url": "ref.html",1566"isFile": true,1567"children": [1568{1569"title": "Built-in Reference",1570"url": "ref_builtins.html",1571"isFile": true,1572"children": [1573{1574"title": "Alphabetical index",1575"url": "ref_builtins_alphaidx.html",1576"isFile": true,1577"children": [1578]1579}1580,1581{1582"title": "Built-ins for strings",1583"url": "ref_builtins_string.html",1584"isFile": true,1585"children": [1586{1587"title": "boolean",1588"url": "ref_builtins_string.html#ref_builtin_boolean",1589"isFile": false,1590"children": [1591]1592}1593,1594{1595"title": "cap_first",1596"url": "ref_builtins_string.html#ref_builtin_cap_first",1597"isFile": false,1598"children": [1599]1600}1601,1602{1603"title": "capitalize",1604"url": "ref_builtins_string.html#ref_builtin_capitalize",1605"isFile": false,1606"children": [1607]1608}1609,1610{1611"title": "chop_linebreak",1612"url": "ref_builtins_string.html#ref_builtin_chop_linebreak",1613"isFile": false,1614"children": [1615]1616}1617,1618{1619"title": "contains",1620"url": "ref_builtins_string.html#ref_builtin_contains",1621"isFile": false,1622"children": [1623]1624}1625,1626{1627"title": "date, time, datetime",1628"url": "ref_builtins_string.html#ref_builtin_string_date",1629"isFile": false,1630"children": [1631]1632}1633,1634{1635"title": "ends_with",1636"url": "ref_builtins_string.html#ref_builtin_ends_with",1637"isFile": false,1638"children": [1639]1640}1641,1642{1643"title": "ensure_ends_with",1644"url": "ref_builtins_string.html#ref_builtin_ensure_ends_with",1645"isFile": false,1646"children": [1647]1648}1649,1650{1651"title": "ensure_starts_with",1652"url": "ref_builtins_string.html#ref_builtin_ensure_starts_with",1653"isFile": false,1654"children": [1655]1656}1657,1658{1659"title": "esc",1660"url": "ref_builtins_string.html#ref_builtin_esc",1661"isFile": false,1662"children": [1663]1664}1665,1666{1667"title": "groups",1668"url": "ref_builtins_string.html#ref_builtin_groups",1669"isFile": false,1670"children": [1671]1672}1673,1674{1675"title": "html (deprecated)",1676"url": "ref_builtins_string.html#ref_builtin_html",1677"isFile": false,1678"children": [1679]1680}1681,1682{1683"title": "index_of",1684"url": "ref_builtins_string.html#ref_builtin_index_of",1685"isFile": false,1686"children": [1687]1688}1689,1690{1691"title": "j_string",1692"url": "ref_builtins_string.html#ref_builtin_j_string",1693"isFile": false,1694"children": [1695]1696}1697,1698{1699"title": "js_string",1700"url": "ref_builtins_string.html#ref_builtin_js_string",1701"isFile": false,1702"children": [1703]1704}1705,1706{1707"title": "json_string",1708"url": "ref_builtins_string.html#ref_builtin_json_string",1709"isFile": false,1710"children": [1711]1712}1713,1714{1715"title": "keep_after",1716"url": "ref_builtins_string.html#ref_builtin_keep_after",1717"isFile": false,1718"children": [1719]1720}1721,1722{1723"title": "keep_after_last",1724"url": "ref_builtins_string.html#ref_builtin_keep_after_last",1725"isFile": false,1726"children": [1727]1728}1729,1730{1731"title": "keep_before",1732"url": "ref_builtins_string.html#ref_builtin_keep_before",1733"isFile": false,1734"children": [1735]1736}1737,1738{1739"title": "keep_before_last",1740"url": "ref_builtins_string.html#ref_builtin_keep_before_last",1741"isFile": false,1742"children": [1743]1744}1745,1746{1747"title": "last_index_of",1748"url": "ref_builtins_string.html#ref_builtin_last_index_of",1749"isFile": false,1750"children": [1751]1752}1753,1754{1755"title": "left_pad",1756"url": "ref_builtins_string.html#ref_builtin_left_pad",1757"isFile": false,1758"children": [1759]1760}1761,1762{1763"title": "length",1764"url": "ref_builtins_string.html#ref_builtin_length",1765"isFile": false,1766"children": [1767]1768}1769,1770{1771"title": "lower_case",1772"url": "ref_builtins_string.html#ref_builtin_lower_case",1773"isFile": false,1774"children": [1775]1776}1777,1778{1779"title": "matches",1780"url": "ref_builtins_string.html#ref_builtin_matches",1781"isFile": false,1782"children": [1783]1784}1785,1786{1787"title": "no_esc",1788"url": "ref_builtins_string.html#ref_builtin_no_esc",1789"isFile": false,1790"children": [1791]1792}1793,1794{1795"title": "number",1796"url": "ref_builtins_string.html#ref_builtin_number",1797"isFile": false,1798"children": [1799]1800}1801,1802{1803"title": "replace",1804"url": "ref_builtins_string.html#ref_builtin_replace",1805"isFile": false,1806"children": [1807]1808}1809,1810{1811"title": "right_pad",1812"url": "ref_builtins_string.html#ref_builtin_right_pad",1813"isFile": false,1814"children": [1815]1816}1817,1818{1819"title": "remove_beginning",1820"url": "ref_builtins_string.html#ref_builtin_remove_beginning",1821"isFile": false,1822"children": [1823]1824}1825,1826{1827"title": "remove_ending",1828"url": "ref_builtins_string.html#ref_builtin_remove_ending",1829"isFile": false,1830"children": [1831]1832}1833,1834{1835"title": "rtf (deprecated)",1836"url": "ref_builtins_string.html#ref_builtin_rtf",1837"isFile": false,1838"children": [1839]1840}1841,1842{1843"title": "split",1844"url": "ref_builtins_string.html#ref_builtin_split",1845"isFile": false,1846"children": [1847]1848}1849,1850{1851"title": "starts_with",1852"url": "ref_builtins_string.html#ref_builtin_starts_with",1853"isFile": false,1854"children": [1855]1856}1857,1858{1859"title": "string (when used with a string value)",1860"url": "ref_builtins_string.html#ref_builtin_string_for_string",1861"isFile": false,1862"children": [1863]1864}1865,1866{1867"title": "substring (deprecated)",1868"url": "ref_builtins_string.html#ref_builtin_substring",1869"isFile": false,1870"children": [1871]1872}1873,1874{1875"title": "trim",1876"url": "ref_builtins_string.html#ref_builtin_trim",1877"isFile": false,1878"children": [1879]1880}1881,1882{1883"title": "uncap_first",1884"url": "ref_builtins_string.html#ref_builtin_uncap_first",1885"isFile": false,1886"children": [1887]1888}1889,1890{1891"title": "upper_case",1892"url": "ref_builtins_string.html#ref_builtin_upper_case",1893"isFile": false,1894"children": [1895]1896}1897,1898{1899"title": "url",1900"url": "ref_builtins_string.html#ref_builtin_url",1901"isFile": false,1902"children": [1903]1904}1905,1906{1907"title": "url_path",1908"url": "ref_builtins_string.html#ref_builtin_url_path",1909"isFile": false,1910"children": [1911]1912}1913,1914{1915"title": "word_list",1916"url": "ref_builtins_string.html#ref_builtin_word_list",1917"isFile": false,1918"children": [1919]1920}1921,1922{1923"title": "xhtml (deprecated)",1924"url": "ref_builtins_string.html#ref_builtin_xhtml",1925"isFile": false,1926"children": [1927]1928}1929,1930{1931"title": "xml (deprecated)",1932"url": "ref_builtins_string.html#ref_builtin_xml",1933"isFile": false,1934"children": [1935]1936}1937,1938{1939"title": "Common flags",1940"url": "ref_builtins_string.html#ref_builtin_string_flags",1941"isFile": false,1942"children": [1943]1944}1945]1946}1947,1948{1949"title": "Built-ins for numbers",1950"url": "ref_builtins_number.html",1951"isFile": true,1952"children": [1953{1954"title": "abs",1955"url": "ref_builtins_number.html#ref_builtin_abs",1956"isFile": false,1957"children": [1958]1959}1960,1961{1962"title": "c (when used with numerical value)",1963"url": "ref_builtins_number.html#ref_builtin_c",1964"isFile": false,1965"children": [1966]1967}1968,1969{1970"title": "is_infinite",1971"url": "ref_builtins_number.html#ref_builtin_is_infinite",1972"isFile": false,1973"children": [1974]1975}1976,1977{1978"title": "is_nan",1979"url": "ref_builtins_number.html#ref_builtin_is_nan",1980"isFile": false,1981"children": [1982]1983}1984,1985{1986"title": "lower_abc",1987"url": "ref_builtins_number.html#ref_builtin_lower_abc",1988"isFile": false,1989"children": [1990]1991}1992,1993{1994"title": "round, floor, ceiling",1995"url": "ref_builtins_number.html#ref_builtin_rounding",1996"isFile": false,1997"children": [1998]1999}2000,2001{2002"title": "string (when used with a numerical value)",2003"url": "ref_builtins_number.html#ref_builtin_string_for_number",2004"isFile": false,2005"children": [2006]2007}2008,2009{2010"title": "upper_abc",2011"url": "ref_builtins_number.html#ref_builtin_upper_abc",2012"isFile": false,2013"children": [2014]2015}2016]2017}2018,2019{2020"title": "Built-ins for date/time/date-time values",2021"url": "ref_builtins_date.html",2022"isFile": true,2023"children": [2024{2025"title": "date, time, datetime (when used with a date/time/date-time\n value)",2026"url": "ref_builtins_date.html#ref_builtin_date_datetype",2027"isFile": false,2028"children": [2029]2030}2031,2032{2033"title": "date_if_unknown, time_if_unknown, datetime_if_unknown",2034"url": "ref_builtins_date.html#ref_builtin_date_if_unknown",2035"isFile": false,2036"children": [2037]2038}2039,2040{2041"title": "iso_...",2042"url": "ref_builtins_date.html#ref_builtin_date_iso",2043"isFile": false,2044"children": [2045]2046}2047,2048{2049"title": "string (when used with a date/time/date-time value)",2050"url": "ref_builtins_date.html#ref_builtin_string_for_date",2051"isFile": false,2052"children": [2053]2054}2055]2056}2057,2058{2059"title": "Built-ins for booleans",2060"url": "ref_builtins_boolean.html",2061"isFile": true,2062"children": [2063{2064"title": "c (when used with boolean)",2065"url": "ref_builtins_boolean.html#ref_builtin_c_boolean",2066"isFile": false,2067"children": [2068]2069}2070,2071{2072"title": "string (when used with a boolean value)",2073"url": "ref_builtins_boolean.html#ref_builtin_string_for_boolean",2074"isFile": false,2075"children": [2076]2077}2078,2079{2080"title": "then",2081"url": "ref_builtins_boolean.html#ref_builtin_then",2082"isFile": false,2083"children": [2084]2085}2086]2087}2088,2089{2090"title": "Built-ins for sequences",2091"url": "ref_builtins_sequence.html",2092"isFile": true,2093"children": [2094{2095"title": "chunk",2096"url": "ref_builtins_sequence.html#ref_builtin_chunk",2097"isFile": false,2098"children": [2099]2100}2101,2102{2103"title": "first",2104"url": "ref_builtins_sequence.html#ref_builtin_first",2105"isFile": false,2106"children": [2107]2108}2109,2110{2111"title": "join",2112"url": "ref_builtins_sequence.html#ref_builtin_join",2113"isFile": false,2114"children": [2115]2116}2117,2118{2119"title": "last",2120"url": "ref_builtins_sequence.html#ref_builtin_last",2121"isFile": false,2122"children": [2123]2124}2125,2126{2127"title": "min, max",2128"url": "ref_builtins_sequence.html#ref_builtin_min_max",2129"isFile": false,2130"children": [2131]2132}2133,2134{2135"title": "reverse",2136"url": "ref_builtins_sequence.html#ref_builtin_reverse",2137"isFile": false,2138"children": [2139]2140}2141,2142{2143"title": "seq_contains",2144"url": "ref_builtins_sequence.html#ref_builtin_seq_contains",2145"isFile": false,2146"children": [2147]2148}2149,2150{2151"title": "seq_index_of",2152"url": "ref_builtins_sequence.html#ref_builtin_seq_index_of",2153"isFile": false,2154"children": [2155]2156}2157,2158{2159"title": "seq_last_index_of",2160"url": "ref_builtins_sequence.html#ref_builtin_seq_last_index_of",2161"isFile": false,2162"children": [2163]2164}2165,2166{2167"title": "size",2168"url": "ref_builtins_sequence.html#ref_builtin_size",2169"isFile": false,2170"children": [2171]2172}2173,2174{2175"title": "sort",2176"url": "ref_builtins_sequence.html#ref_builtin_sort",2177"isFile": false,2178"children": [2179]2180}2181,2182{2183"title": "sort_by",2184"url": "ref_builtins_sequence.html#ref_builtin_sort_by",2185"isFile": false,2186"children": [2187]2188}2189]2190}2191,2192{2193"title": "Built-ins for hashes",2194"url": "ref_builtins_hash.html",2195"isFile": true,2196"children": [2197{2198"title": "keys",2199"url": "ref_builtins_hash.html#ref_builtin_keys",2200"isFile": false,2201"children": [2202]2203}2204,2205{2206"title": "values",2207"url": "ref_builtins_hash.html#ref_builtin_values",2208"isFile": false,2209"children": [2210]2211}2212]2213}2214,2215{2216"title": "Built-ins for nodes (for XML)",2217"url": "ref_builtins_node.html",2218"isFile": true,2219"children": [2220{2221"title": "ancestors",2222"url": "ref_builtins_node.html#ref_builtin_ancestors",2223"isFile": false,2224"children": [2225]2226}2227,2228{2229"title": "children",2230"url": "ref_builtins_node.html#ref_builtin_children",2231"isFile": false,2232"children": [2233]2234}2235,2236{2237"title": "node_name",2238"url": "ref_builtins_node.html#ref_builtin_node_name",2239"isFile": false,2240"children": [2241]2242}2243,2244{2245"title": "next_sibling",2246"url": "ref_builtins_node.html#ref_builtin_next_sibling",2247"isFile": false,2248"children": [2249]2250}2251,2252{2253"title": "node_namespace",2254"url": "ref_builtins_node.html#ref_builtin_node_namespace",2255"isFile": false,2256"children": [2257]2258}2259,2260{2261"title": "node_type",2262"url": "ref_builtins_node.html#ref_builtin_node_type",2263"isFile": false,2264"children": [2265]2266}2267,2268{2269"title": "parent",2270"url": "ref_builtins_node.html#ref_builtin_parent",2271"isFile": false,2272"children": [2273]2274}2275,2276{2277"title": "previous_sibling",2278"url": "ref_builtins_node.html#ref_builtin_previous_sibling",2279"isFile": false,2280"children": [2281]2282}2283,2284{2285"title": "root",2286"url": "ref_builtins_node.html#ref_builtin_root",2287"isFile": false,2288"children": [2289]2290}2291]2292}2293,2294{2295"title": "Loop variable built-ins",2296"url": "ref_builtins_loop_var.html",2297"isFile": true,2298"children": [2299{2300"title": "counter",2301"url": "ref_builtins_loop_var.html#ref_builtin_counter",2302"isFile": false,2303"children": [2304]2305}2306,2307{2308"title": "has_next",2309"url": "ref_builtins_loop_var.html#ref_builtin_has_next",2310"isFile": false,2311"children": [2312]2313}2314,2315{2316"title": "index",2317"url": "ref_builtins_loop_var.html#ref_builtin_index",2318"isFile": false,2319"children": [2320]2321}2322,2323{2324"title": "is_even_item",2325"url": "ref_builtins_loop_var.html#ref_builtin_is_even_item",2326"isFile": false,2327"children": [2328]2329}2330,2331{2332"title": "is_first",2333"url": "ref_builtins_loop_var.html#ref_builtin_is_first",2334"isFile": false,2335"children": [2336]2337}2338,2339{2340"title": "is_last",2341"url": "ref_builtins_loop_var.html#ref_builtin_is_last",2342"isFile": false,2343"children": [2344]2345}2346,2347{2348"title": "is_odd_item",2349"url": "ref_builtins_loop_var.html#ref_builtin_is_odd_item",2350"isFile": false,2351"children": [2352]2353}2354,2355{2356"title": "item_cycle",2357"url": "ref_builtins_loop_var.html#ref_builtin_item_cycle",2358"isFile": false,2359"children": [2360]2361}2362,2363{2364"title": "item_parity",2365"url": "ref_builtins_loop_var.html#ref_builtin_item_parity",2366"isFile": false,2367"children": [2368]2369}2370,2371{2372"title": "item_parity_cap",2373"url": "ref_builtins_loop_var.html#ref_builtin_item_parity_cap",2374"isFile": false,2375"children": [2376]2377}2378]2379}2380,2381{2382"title": "Type independent built-ins",2383"url": "ref_builtins_type_independent.html",2384"isFile": true,2385"children": [2386{2387"title": "switch",2388"url": "ref_builtins_type_independent.html#ref_builtin_switch",2389"isFile": false,2390"children": [2391]2392}2393]2394}2395,2396{2397"title": "Seldom used and expert built-ins",2398"url": "ref_builtins_expert.html",2399"isFile": true,2400"children": [2401{2402"title": "absolute_template_name",2403"url": "ref_builtins_expert.html#ref_builtin_absolute_template_name",2404"isFile": false,2405"children": [2406]2407}2408,2409{2410"title": "api, has_api",2411"url": "ref_builtins_expert.html#ref_buitin_api_and_has_api",2412"isFile": false,2413"children": [2414]2415}2416,2417{2418"title": "byte, double, float, int, long, short",2419"url": "ref_builtins_expert.html#ref_builtin_numType",2420"isFile": false,2421"children": [2422]2423}2424,2425{2426"title": "eval",2427"url": "ref_builtins_expert.html#ref_builtin_eval",2428"isFile": false,2429"children": [2430]2431}2432,2433{2434"title": "has_content",2435"url": "ref_builtins_expert.html#ref_builtin_has_content",2436"isFile": false,2437"children": [2438]2439}2440,2441{2442"title": "interpret",2443"url": "ref_builtins_expert.html#ref_builtin_interpret",2444"isFile": false,2445"children": [2446]2447}2448,2449{2450"title": "is_...",2451"url": "ref_builtins_expert.html#ref_builtin_isType",2452"isFile": false,2453"children": [2454]2455}2456,2457{2458"title": "markup_string",2459"url": "ref_builtins_expert.html#ref_builtin_markup_string",2460"isFile": false,2461"children": [2462]2463}2464,2465{2466"title": "namespace",2467"url": "ref_builtins_expert.html#ref_builtin_namespace",2468"isFile": false,2469"children": [2470]2471}2472,2473{2474"title": "new",2475"url": "ref_builtins_expert.html#ref_builtin_new",2476"isFile": false,2477"children": [2478]2479}2480,2481{2482"title": "number_to_date, number_to_time, number_to_datetime",2483"url": "ref_builtins_expert.html#ref_builtin_numToDate",2484"isFile": false,2485"children": [2486]2487}2488,2489{2490"title": "sequence",2491"url": "ref_builtins_expert.html#ref_builtin_sequence",2492"isFile": false,2493"children": [2494]2495}2496]2497}2498]2499}2500,2501{2502"title": "Directive Reference",2503"url": "ref_directives.html",2504"isFile": true,2505"children": [2506{2507"title": "Alphabetical index",2508"url": "ref_directive_alphaidx.html",2509"isFile": true,2510"children": [2511]2512}2513,2514{2515"title": "assign",2516"url": "ref_directive_assign.html",2517"isFile": true,2518"children": [2519{2520"title": "Synopsis",2521"url": "ref_directive_assign.html#autoid_76",2522"isFile": false,2523"children": [2524]2525}2526,2527{2528"title": "Description",2529"url": "ref_directive_assign.html#autoid_77",2530"isFile": false,2531"children": [2532]2533}2534]2535}2536,2537{2538"title": "attempt, recover",2539"url": "ref_directive_attempt.html",2540"isFile": true,2541"children": [2542{2543"title": "Synopsis",2544"url": "ref_directive_attempt.html#autoid_78",2545"isFile": false,2546"children": [2547]2548}2549,2550{2551"title": "Description",2552"url": "ref_directive_attempt.html#autoid_79",2553"isFile": false,2554"children": [2555]2556}2557]2558}2559,2560{2561"title": "autoesc",2562"url": "ref_directive_autoesc.html",2563"isFile": true,2564"children": [2565{2566"title": "Synopsis",2567"url": "ref_directive_autoesc.html#autoid_80",2568"isFile": false,2569"children": [2570]2571}2572,2573{2574"title": "Description",2575"url": "ref_directive_autoesc.html#autoid_81",2576"isFile": false,2577"children": [2578]2579}2580]2581}2582,2583{2584"title": "compress",2585"url": "ref_directive_compress.html",2586"isFile": true,2587"children": [2588{2589"title": "Synopsis",2590"url": "ref_directive_compress.html#autoid_82",2591"isFile": false,2592"children": [2593]2594}2595,2596{2597"title": "Description",2598"url": "ref_directive_compress.html#autoid_83",2599"isFile": false,2600"children": [2601]2602}2603]2604}2605,2606{2607"title": "escape, noescape (deprecated)",2608"url": "ref_directive_escape.html",2609"isFile": true,2610"children": [2611{2612"title": "Synopsis",2613"url": "ref_directive_escape.html#autoid_84",2614"isFile": false,2615"children": [2616]2617}2618,2619{2620"title": "Description",2621"url": "ref_directive_escape.html#autoid_85",2622"isFile": false,2623"children": [2624]2625}2626]2627}2628,2629{2630"title": "flush",2631"url": "ref_directive_flush.html",2632"isFile": true,2633"children": [2634{2635"title": "Synopsis",2636"url": "ref_directive_flush.html#autoid_86",2637"isFile": false,2638"children": [2639]2640}2641,2642{2643"title": "Description",2644"url": "ref_directive_flush.html#autoid_87",2645"isFile": false,2646"children": [2647]2648}2649]2650}2651,2652{2653"title": "ftl",2654"url": "ref_directive_ftl.html",2655"isFile": true,2656"children": [2657{2658"title": "Synopsis",2659"url": "ref_directive_ftl.html#autoid_88",2660"isFile": false,2661"children": [2662]2663}2664,2665{2666"title": "Description",2667"url": "ref_directive_ftl.html#autoid_89",2668"isFile": false,2669"children": [2670]2671}2672]2673}2674,2675{2676"title": "function, return",2677"url": "ref_directive_function.html",2678"isFile": true,2679"children": [2680{2681"title": "Synopsis",2682"url": "ref_directive_function.html#autoid_90",2683"isFile": false,2684"children": [2685]2686}2687,2688{2689"title": "Description",2690"url": "ref_directive_function.html#autoid_91",2691"isFile": false,2692"children": [2693]2694}2695]2696}2697,2698{2699"title": "global",2700"url": "ref_directive_global.html",2701"isFile": true,2702"children": [2703{2704"title": "Synopsis",2705"url": "ref_directive_global.html#autoid_92",2706"isFile": false,2707"children": [2708]2709}2710,2711{2712"title": "Description",2713"url": "ref_directive_global.html#autoid_93",2714"isFile": false,2715"children": [2716]2717}2718]2719}2720,2721{2722"title": "if, else, elseif",2723"url": "ref_directive_if.html",2724"isFile": true,2725"children": [2726{2727"title": "Synopsis",2728"url": "ref_directive_if.html#autoid_94",2729"isFile": false,2730"children": [2731]2732}2733,2734{2735"title": "Description",2736"url": "ref_directive_if.html#autoid_95",2737"isFile": false,2738"children": [2739]2740}2741]2742}2743,2744{2745"title": "import",2746"url": "ref_directive_import.html",2747"isFile": true,2748"children": [2749{2750"title": "Synopsis",2751"url": "ref_directive_import.html#autoid_96",2752"isFile": false,2753"children": [2754]2755}2756,2757{2758"title": "Description",2759"url": "ref_directive_import.html#autoid_97",2760"isFile": false,2761"children": [2762]2763}2764]2765}2766,2767{2768"title": "include",2769"url": "ref_directive_include.html",2770"isFile": true,2771"children": [2772{2773"title": "Synopsis",2774"url": "ref_directive_include.html#autoid_98",2775"isFile": false,2776"children": [2777]2778}2779,2780{2781"title": "Description",2782"url": "ref_directive_include.html#autoid_99",2783"isFile": false,2784"children": [2785{2786"title": "Using acquisition",2787"url": "ref_directive_include.html#ref_directive_include_acquisition",2788"isFile": false,2789"children": [2790]2791}2792,2793{2794"title": "Localized lookup",2795"url": "ref_directive_include.html#ref_directive_include_localized",2796"isFile": false,2797"children": [2798]2799}2800]2801}2802]2803}2804,2805{2806"title": "list, else, items, sep, break, continue",2807"url": "ref_directive_list.html",2808"isFile": true,2809"children": [2810{2811"title": "Synopsis",2812"url": "ref_directive_list.html#autoid_100",2813"isFile": false,2814"children": [2815]2816}2817,2818{2819"title": "Description",2820"url": "ref_directive_list.html#autoid_101",2821"isFile": false,2822"children": [2823{2824"title": "Simplest form",2825"url": "ref_directive_list.html#ref_list_simple",2826"isFile": false,2827"children": [2828]2829}2830,2831{2832"title": "else directive",2833"url": "ref_directive_list.html#ref_list_else",2834"isFile": false,2835"children": [2836]2837}2838,2839{2840"title": "items directive",2841"url": "ref_directive_list.html#ref_list_items",2842"isFile": false,2843"children": [2844]2845}2846,2847{2848"title": "sep directive",2849"url": "ref_directive_list.html#ref_list_sep",2850"isFile": false,2851"children": [2852]2853}2854,2855{2856"title": "break directive",2857"url": "ref_directive_list.html#ref_list_break",2858"isFile": false,2859"children": [2860]2861}2862,2863{2864"title": "continue directive",2865"url": "ref_directive_list.html#ref_list_continue",2866"isFile": false,2867"children": [2868]2869}2870,2871{2872"title": "Accessing iteration state",2873"url": "ref_directive_list.html#ref_list_accessing_state",2874"isFile": false,2875"children": [2876]2877}2878,2879{2880"title": "Nesting loops into each other",2881"url": "ref_directive_list.html#ref_list_nesting",2882"isFile": false,2883"children": [2884]2885}2886,2887{2888"title": "Notes for Java programmers",2889"url": "ref_directive_list.html#ref_list_java_notes",2890"isFile": false,2891"children": [2892]2893}2894]2895}2896]2897}2898,2899{2900"title": "local",2901"url": "ref_directive_local.html",2902"isFile": true,2903"children": [2904{2905"title": "Synopsis",2906"url": "ref_directive_local.html#autoid_102",2907"isFile": false,2908"children": [2909]2910}2911,2912{2913"title": "Description",2914"url": "ref_directive_local.html#autoid_103",2915"isFile": false,2916"children": [2917]2918}2919]2920}2921,2922{2923"title": "macro, nested, return",2924"url": "ref_directive_macro.html",2925"isFile": true,2926"children": [2927{2928"title": "Synopsis",2929"url": "ref_directive_macro.html#autoid_104",2930"isFile": false,2931"children": [2932]2933}2934,2935{2936"title": "Description",2937"url": "ref_directive_macro.html#autoid_105",2938"isFile": false,2939"children": [2940{2941"title": "nested",2942"url": "ref_directive_macro.html#autoid_106",2943"isFile": false,2944"children": [2945]2946}2947,2948{2949"title": "return",2950"url": "ref_directive_macro.html#autoid_107",2951"isFile": false,2952"children": [2953]2954}2955]2956}2957]2958}2959,2960{2961"title": "noautoesc",2962"url": "ref_directive_noautoesc.html",2963"isFile": true,2964"children": [2965{2966"title": "Synopsis",2967"url": "ref_directive_noautoesc.html#autoid_108",2968"isFile": false,2969"children": [2970]2971}2972,2973{2974"title": "Description",2975"url": "ref_directive_noautoesc.html#autoid_109",2976"isFile": false,2977"children": [2978]2979}2980]2981}2982,2983{2984"title": "noparse",2985"url": "ref_directive_noparse.html",2986"isFile": true,2987"children": [2988{2989"title": "Synopsis",2990"url": "ref_directive_noparse.html#autoid_110",2991"isFile": false,2992"children": [2993]2994}2995,2996{2997"title": "Description",2998"url": "ref_directive_noparse.html#autoid_111",2999"isFile": false,3000"children": [3001]3002}3003]3004}3005,3006{3007"title": "nt",3008"url": "ref_directive_nt.html",3009"isFile": true,3010"children": [3011{3012"title": "Synopsis",3013"url": "ref_directive_nt.html#autoid_112",3014"isFile": false,3015"children": [3016]3017}3018,3019{3020"title": "Description",3021"url": "ref_directive_nt.html#autoid_113",3022"isFile": false,3023"children": [3024]3025}3026]3027}3028,3029{3030"title": "outputformat",3031"url": "ref_directive_outputformat.html",3032"isFile": true,3033"children": [3034{3035"title": "Synopsis",3036"url": "ref_directive_outputformat.html#autoid_114",3037"isFile": false,3038"children": [3039]3040}3041,3042{3043"title": "Description",3044"url": "ref_directive_outputformat.html#autoid_115",3045"isFile": false,3046"children": [3047]3048}3049]3050}3051,3052{3053"title": "setting",3054"url": "ref_directive_setting.html",3055"isFile": true,3056"children": [3057{3058"title": "Synopsis",3059"url": "ref_directive_setting.html#autoid_116",3060"isFile": false,3061"children": [3062]3063}3064,3065{3066"title": "Description",3067"url": "ref_directive_setting.html#autoid_117",3068"isFile": false,3069"children": [3070]3071}3072]3073}3074,3075{3076"title": "stop",3077"url": "ref_directive_stop.html",3078"isFile": true,3079"children": [3080{3081"title": "Synopsis",3082"url": "ref_directive_stop.html#autoid_118",3083"isFile": false,3084"children": [3085]3086}3087,3088{3089"title": "Description",3090"url": "ref_directive_stop.html#autoid_119",3091"isFile": false,3092"children": [3093]3094}3095]3096}3097,3098{3099"title": "switch, case, default, break",3100"url": "ref_directive_switch.html",3101"isFile": true,3102"children": [3103{3104"title": "Synopsis",3105"url": "ref_directive_switch.html#autoid_120",3106"isFile": false,3107"children": [3108]3109}3110,3111{3112"title": "Description",3113"url": "ref_directive_switch.html#autoid_121",3114"isFile": false,3115"children": [3116]3117}3118]3119}3120,3121{3122"title": "t, lt, rt",3123"url": "ref_directive_t.html",3124"isFile": true,3125"children": [3126{3127"title": "Synopsis",3128"url": "ref_directive_t.html#autoid_122",3129"isFile": false,3130"children": [3131]3132}3133,3134{3135"title": "Description",3136"url": "ref_directive_t.html#autoid_123",3137"isFile": false,3138"children": [3139]3140}3141]3142}3143,3144{3145"title": "User-defined directive (<@...>)",3146"url": "ref_directive_userDefined.html",3147"isFile": true,3148"children": [3149{3150"title": "Synopsis",3151"url": "ref_directive_userDefined.html#autoid_124",3152"isFile": false,3153"children": [3154]3155}3156,3157{3158"title": "Description",3159"url": "ref_directive_userDefined.html#autoid_125",3160"isFile": false,3161"children": [3162{3163"title": "End-tag",3164"url": "ref_directive_userDefined.html#ref_directive_userDefined_entTag",3165"isFile": false,3166"children": [3167]3168}3169,3170{3171"title": "Loop variables",3172"url": "ref_directive_userDefined.html#ref_directive_userDefined_loopVar",3173"isFile": false,3174"children": [3175]3176}3177,3178{3179"title": "Positional parameter passing",3180"url": "ref_directive_userDefined.html#ref_directive_userDefined_positionalParam",3181"isFile": false,3182"children": [3183]3184}3185]3186}3187]3188}3189,3190{3191"title": "visit, recurse, fallback",3192"url": "ref_directive_visit.html",3193"isFile": true,3194"children": [3195{3196"title": "Synopsis",3197"url": "ref_directive_visit.html#autoid_126",3198"isFile": false,3199"children": [3200]3201}3202,3203{3204"title": "Description",3205"url": "ref_directive_visit.html#autoid_127",3206"isFile": false,3207"children": [3208{3209"title": "Visit",3210"url": "ref_directive_visit.html#autoid_128",3211"isFile": false,3212"children": [3213]3214}3215,3216{3217"title": "Recurse",3218"url": "ref_directive_visit.html#autoid_129",3219"isFile": false,3220"children": [3221]3222}3223,3224{3225"title": "Fallback",3226"url": "ref_directive_visit.html#autoid_130",3227"isFile": false,3228"children": [3229]3230}3231]3232}3233]3234}3235]3236}3237,3238{3239"title": "Special Variable Reference",3240"url": "ref_specvar.html",3241"isFile": true,3242"children": [3243]3244}3245,3246{3247"title": "Reserved names in FTL",3248"url": "ref_reservednames.html",3249"isFile": true,3250"children": [3251]3252}3253,3254{3255"title": "Deprecated FTL constructs",3256"url": "ref_deprecated.html",3257"isFile": true,3258"children": [3259{3260"title": "List of deprecated directives",3261"url": "ref_depr_directive.html",3262"isFile": true,3263"children": [3264]3265}3266,3267{3268"title": "List of deprecated built-ins",3269"url": "ref_depr_builtin.html",3270"isFile": true,3271"children": [3272]3273}3274,3275{3276"title": "Old-style macro and call directives",3277"url": "ref_depr_oldmacro.html",3278"isFile": true,3279"children": [3280{3281"title": "Synopsis",3282"url": "ref_depr_oldmacro.html#autoid_131",3283"isFile": false,3284"children": [3285]3286}3287,3288{3289"title": "Description",3290"url": "ref_depr_oldmacro.html#autoid_132",3291"isFile": false,3292"children": [3293]3294}3295]3296}3297,3298{3299"title": "Transform directive",3300"url": "ref_depr_transform.html",3301"isFile": true,3302"children": [3303{3304"title": "Synopsis",3305"url": "ref_depr_transform.html#autoid_133",3306"isFile": false,3307"children": [3308]3309}3310,3311{3312"title": "Description",3313"url": "ref_depr_transform.html#autoid_134",3314"isFile": false,3315"children": [3316]3317}3318]3319}3320,3321{3322"title": "Old FTL syntax",3323"url": "ref_depr_oldsyntax.html",3324"isFile": true,3325"children": [3326]3327}3328,3329{3330"title": "#{...}: Numerical interpolation",3331"url": "ref_depr_numerical_interpolation.html",3332"isFile": true,3333"children": [3334{3335"title": "Synopsis",3336"url": "ref_depr_numerical_interpolation.html#autoid_135",3337"isFile": false,3338"children": [3339]3340}3341,3342{3343"title": "Description",3344"url": "ref_depr_numerical_interpolation.html#autoid_136",3345"isFile": false,3346"children": [3347]3348}3349]3350}3351]3352}3353]3354}3355,3356{3357"title": "XML Processing Guide",3358"url": "xgui.html",3359"isFile": true,3360"children": [3361{3362"title": "Preface",3363"url": "xgui_preface.html",3364"isFile": true,3365"children": [3366]3367}3368,3369{3370"title": "Exposing XML documents",3371"url": "xgui_expose.html",3372"isFile": true,3373"children": [3374{3375"title": "The DOM tree",3376"url": "xgui_expose_dom.html",3377"isFile": true,3378"children": [3379]3380}3381,3382{3383"title": "Putting the XML into the data-model",3384"url": "xgui_expose_put.html",3385"isFile": true,3386"children": [3387]3388}3389]3390}3391,3392{3393"title": "Imperative XML processing",3394"url": "xgui_imperative.html",3395"isFile": true,3396"children": [3397{3398"title": "Basics",3399"url": "xgui_imperative_learn.html",3400"isFile": true,3401"children": [3402{3403"title": "Accessing elements by name",3404"url": "xgui_imperative_learn.html#autoid_137",3405"isFile": false,3406"children": [3407]3408}3409,3410{3411"title": "Accessing attributes",3412"url": "xgui_imperative_learn.html#autoid_138",3413"isFile": false,3414"children": [3415]3416}3417,3418{3419"title": "Exploring the tree",3420"url": "xgui_imperative_learn.html#autoid_139",3421"isFile": false,3422"children": [3423]3424}3425,3426{3427"title": "Using XPath expressions",3428"url": "xgui_imperative_learn.html#xgui_imperative_learn_xpath",3429"isFile": false,3430"children": [3431]3432}3433,3434{3435"title": "XML namespaces",3436"url": "xgui_imperative_learn.html#autoid_140",3437"isFile": false,3438"children": [3439]3440}3441,3442{3443"title": "Don't forget escaping!",3444"url": "xgui_imperative_learn.html#autoid_141",3445"isFile": false,3446"children": [3447]3448}3449]3450}3451,3452{3453"title": "Details",3454"url": "xgui_imperative_formal.html",3455"isFile": true,3456"children": [3457{3458"title": "Node sequences",3459"url": "xgui_imperative_formal.html#autoid_142",3460"isFile": false,3461"children": [3462]3463}3464]3465}3466]3467}3468,3469{3470"title": "Declarative XML processing",3471"url": "xgui_declarative.html",3472"isFile": true,3473"children": [3474{3475"title": "Basics",3476"url": "xgui_declarative_basics.html",3477"isFile": true,3478"children": [3479]3480}3481,3482{3483"title": "Details",3484"url": "xgui_declarative_details.html",3485"isFile": true,3486"children": [3487{3488"title": "Default handlers",3489"url": "xgui_declarative_details.html#autoid_143",3490"isFile": false,3491"children": [3492]3493}3494,3495{3496"title": "Visiting a single node",3497"url": "xgui_declarative_details.html#autoid_144",3498"isFile": false,3499"children": [3500]3501}3502,3503{3504"title": "XML namespaces",3505"url": "xgui_declarative_details.html#autoid_145",3506"isFile": false,3507"children": [3508]3509}3510]3511}3512]3513}3514]3515}3516,3517{3518"title": "Appendixes",3519"url": "app.html",3520"isFile": true,3521"children": [3522{3523"title": "FAQ",3524"url": "app_faq.html",3525"isFile": true,3526"children": [3527]3528}3529,3530{3531"title": "Version history",3532"url": "app_versions.html",3533"isFile": true,3534"children": [3535{3536"title": "2.3.28",3537"url": "versions_2_3_28.html",3538"isFile": true,3539"children": [3540{3541"title": "Changes on the FTL side",3542"url": "versions_2_3_28.html#autoid_146",3543"isFile": false,3544"children": [3545]3546}3547,3548{3549"title": "Changes on the Java side",3550"url": "versions_2_3_28.html#autoid_147",3551"isFile": false,3552"children": [3553]3554}3555,3556{3557"title": "Other changes",3558"url": "versions_2_3_28.html#autoid_148",3559"isFile": false,3560"children": [3561]3562}3563]3564}3565,3566{3567"title": "2.3.27 (incubating at Apache)",3568"url": "versions_2_3_27.html",3569"isFile": true,3570"children": [3571{3572"title": "Changes on the FTL side",3573"url": "versions_2_3_27.html#autoid_149",3574"isFile": false,3575"children": [3576]3577}3578,3579{3580"title": "Changes on the Java side",3581"url": "versions_2_3_27.html#autoid_150",3582"isFile": false,3583"children": [3584]3585}3586]3587}3588,3589{3590"title": "2.3.26 (incubating at Apache)",3591"url": "versions_2_3_26.html",3592"isFile": true,3593"children": [3594{3595"title": "Changes on the FTL side",3596"url": "versions_2_3_26.html#autoid_151",3597"isFile": false,3598"children": [3599]3600}3601,3602{3603"title": "Changes on the Java side",3604"url": "versions_2_3_26.html#autoid_152",3605"isFile": false,3606"children": [3607]3608}3609,3610{3611"title": "Other changes",3612"url": "versions_2_3_26.html#autoid_153",3613"isFile": false,3614"children": [3615]3616}3617]3618}3619,3620{3621"title": "2.3.25 (incubating at Apache)",3622"url": "versions_2_3_25.html",3623"isFile": true,3624"children": [3625{3626"title": "Changes on the FTL side",3627"url": "versions_2_3_25.html#autoid_154",3628"isFile": false,3629"children": [3630]3631}3632,3633{3634"title": "Changes on the Java side",3635"url": "versions_2_3_25.html#autoid_155",3636"isFile": false,3637"children": [3638]3639}3640]3641}3642,3643{3644"title": "2.3.24 (incubating at Apache)",3645"url": "versions_2_3_24.html",3646"isFile": true,3647"children": [3648{3649"title": "Legal changes",3650"url": "versions_2_3_24.html#autoid_156",3651"isFile": false,3652"children": [3653]3654}3655,3656{3657"title": "Changes on the FTL side",3658"url": "versions_2_3_24.html#autoid_157",3659"isFile": false,3660"children": [3661]3662}3663,3664{3665"title": "Changes on the Java side",3666"url": "versions_2_3_24.html#autoid_158",3667"isFile": false,3668"children": [3669]3670}3671,3672{3673"title": "Changes compared to 2.3.24 Release Candidate 1",3674"url": "versions_2_3_24.html#autoid_159",3675"isFile": false,3676"children": [3677]3678}3679]3680}3681,3682{3683"title": "2.3.23",3684"url": "versions_2_3_23.html",3685"isFile": true,3686"children": [3687{3688"title": "Changes on the FTL side",3689"url": "versions_2_3_23.html#autoid_160",3690"isFile": false,3691"children": [3692]3693}3694,3695{3696"title": "Changes on the Java side",3697"url": "versions_2_3_23.html#autoid_161",3698"isFile": false,3699"children": [3700]3701}3702,3703{3704"title": "Other changes",3705"url": "versions_2_3_23.html#autoid_162",3706"isFile": false,3707"children": [3708]3709}3710,3711{3712"title": "Notes",3713"url": "versions_2_3_23.html#autoid_163",3714"isFile": false,3715"children": [3716]3717}3718]3719}3720,3721{3722"title": "2.3.22",3723"url": "versions_2_3_22.html",3724"isFile": true,3725"children": [3726{3727"title": "Changes on the FTL side",3728"url": "versions_2_3_22.html#autoid_164",3729"isFile": false,3730"children": [3731]3732}3733,3734{3735"title": "Changes on the Java side",3736"url": "versions_2_3_22.html#autoid_165",3737"isFile": false,3738"children": [3739]3740}3741,3742{3743"title": "Notes",3744"url": "versions_2_3_22.html#autoid_166",3745"isFile": false,3746"children": [3747]3748}3749]3750}3751,3752{3753"title": "2.3.21",3754"url": "versions_2_3_21.html",3755"isFile": true,3756"children": [3757{3758"title": "Changes on the FTL side",3759"url": "versions_2_3_21.html#autoid_167",3760"isFile": false,3761"children": [3762]3763}3764,3765{3766"title": "Changes on the Java side",3767"url": "versions_2_3_21.html#autoid_168",3768"isFile": false,3769"children": [3770]3771}3772,3773{3774"title": "Other changes",3775"url": "versions_2_3_21.html#autoid_169",3776"isFile": false,3777"children": [3778]3779}3780]3781}3782,3783{3784"title": "2.3.20",3785"url": "versions_2_3_20.html",3786"isFile": true,3787"children": [3788{3789"title": "Changes on the FTL side",3790"url": "versions_2_3_20.html#autoid_170",3791"isFile": false,3792"children": [3793]3794}3795,3796{3797"title": "Changes on the Java side",3798"url": "versions_2_3_20.html#autoid_171",3799"isFile": false,3800"children": [3801]3802}3803,3804{3805"title": "Other changes",3806"url": "versions_2_3_20.html#autoid_172",3807"isFile": false,3808"children": [3809]3810}3811]3812}3813,3814{3815"title": "2.3.19",3816"url": "versions_2_3_19.html",3817"isFile": true,3818"children": [3819{3820"title": "Changes on the FTL side",3821"url": "versions_2_3_19.html#autoid_173",3822"isFile": false,3823"children": [3824]3825}3826,3827{3828"title": "Changes on the Java side",3829"url": "versions_2_3_19.html#autoid_174",3830"isFile": false,3831"children": [3832]3833}3834]3835}3836,3837{3838"title": "2.3.18",3839"url": "versions_2_3_18.html",3840"isFile": true,3841"children": [3842{3843"title": "Changes on the Java side",3844"url": "versions_2_3_18.html#autoid_175",3845"isFile": false,3846"children": [3847]3848}3849,3850{3851"title": "Other changes",3852"url": "versions_2_3_18.html#autoid_176",3853"isFile": false,3854"children": [3855]3856}3857]3858}3859,3860{3861"title": "2.3.17",3862"url": "versions_2_3_17.html",3863"isFile": true,3864"children": [3865{3866"title": "Changes on the FTL side",3867"url": "versions_2_3_17.html#autoid_177",3868"isFile": false,3869"children": [3870]3871}3872,3873{3874"title": "Changes on the Java side",3875"url": "versions_2_3_17.html#autoid_178",3876"isFile": false,3877"children": [3878]3879}3880,3881{3882"title": "Other changes",3883"url": "versions_2_3_17.html#autoid_179",3884"isFile": false,3885"children": [3886]3887}3888]3889}3890,3891{3892"title": "2.3.16",3893"url": "versions_2_3_16.html",3894"isFile": true,3895"children": [3896{3897"title": "Changes on the Java side",3898"url": "versions_2_3_16.html#autoid_180",3899"isFile": false,3900"children": [3901]3902}3903,3904{3905"title": "Changes on the FTL side",3906"url": "versions_2_3_16.html#autoid_181",3907"isFile": false,3908"children": [3909]3910}3911]3912}3913,3914{3915"title": "2.3.15",3916"url": "versions_2_3_15.html",3917"isFile": true,3918"children": [3919{3920"title": "Changes on the FTL side",3921"url": "versions_2_3_15.html#autoid_182",3922"isFile": false,3923"children": [3924]3925}3926,3927{3928"title": "Changes on the Java side",3929"url": "versions_2_3_15.html#autoid_183",3930"isFile": false,3931"children": [3932]3933}3934]3935}3936,3937{3938"title": "2.3.14",3939"url": "versions_2_3_14.html",3940"isFile": true,3941"children": [3942{3943"title": "Changes on the FTL side",3944"url": "versions_2_3_14.html#autoid_184",3945"isFile": false,3946"children": [3947]3948}3949,3950{3951"title": "Changes on the Java side",3952"url": "versions_2_3_14.html#autoid_185",3953"isFile": false,3954"children": [3955]3956}3957]3958}3959,3960{3961"title": "2.3.13",3962"url": "versions_2_3_13.html",3963"isFile": true,3964"children": [3965{3966"title": "Changes on the FTL side",3967"url": "versions_2_3_13.html#autoid_186",3968"isFile": false,3969"children": [3970]3971}3972,3973{3974"title": "Changes on the Java side",3975"url": "versions_2_3_13.html#autoid_187",3976"isFile": false,3977"children": [3978]3979}3980]3981}3982,3983{3984"title": "2.3.12",3985"url": "versions_2_3_12.html",3986"isFile": true,3987"children": [3988{3989"title": "Changes on the Java side",3990"url": "versions_2_3_12.html#autoid_188",3991"isFile": false,3992"children": [3993]3994}3995]3996}3997,3998{3999"title": "2.3.11",4000"url": "versions_2_3_11.html",4001"isFile": true,4002"children": [4003{4004"title": "Changes on the FTL side",4005"url": "versions_2_3_11.html#autoid_189",4006"isFile": false,4007"children": [4008]4009}4010,4011{4012"title": "Changes on the Java side",4013"url": "versions_2_3_11.html#autoid_190",4014"isFile": false,4015"children": [4016]4017}4018,4019{4020"title": "Documentation changes",4021"url": "versions_2_3_11.html#autoid_191",4022"isFile": false,4023"children": [4024]4025}4026]4027}4028,4029{4030"title": "2.3.10",4031"url": "versions_2_3_10.html",4032"isFile": true,4033"children": [4034{4035"title": "Changes on the Java side",4036"url": "versions_2_3_10.html#autoid_192",4037"isFile": false,4038"children": [4039]4040}4041,4042{4043"title": "Changes on the FTL side",4044"url": "versions_2_3_10.html#autoid_193",4045"isFile": false,4046"children": [4047]4048}4049]4050}4051,4052{4053"title": "2.3.9",4054"url": "versions_2_3_9.html",4055"isFile": true,4056"children": [4057{4058"title": "Changes on the Java side",4059"url": "versions_2_3_9.html#autoid_194",4060"isFile": false,4061"children": [4062]4063}4064]4065}4066,4067{4068"title": "2.3.8",4069"url": "versions_2_3_8.html",4070"isFile": true,4071"children": [4072{4073"title": "Changes on the Java side",4074"url": "versions_2_3_8.html#autoid_195",4075"isFile": false,4076"children": [4077]4078}4079]4080}4081,4082{4083"title": "2.3.7",4084"url": "versions_2_3_7.html",4085"isFile": true,4086"children": [4087{4088"title": "Changes on the Java side",4089"url": "versions_2_3_7.html#autoid_196",4090"isFile": false,4091"children": [4092]4093}4094,4095{4096"title": "Changes on the FTL side",4097"url": "versions_2_3_7.html#autoid_197",4098"isFile": false,4099"children": [4100]4101}4102]4103}4104,4105{4106"title": "2.3.7 RC1",4107"url": "versions_2_3_7rc1.html",4108"isFile": true,4109"children": [4110{4111"title": "Changes on the Java side",4112"url": "versions_2_3_7rc1.html#autoid_198",4113"isFile": false,4114"children": [4115]4116}4117,4118{4119"title": "Changes on the FTL side",4120"url": "versions_2_3_7rc1.html#autoid_199",4121"isFile": false,4122"children": [4123]4124}4125]4126}4127,4128{4129"title": "2.3.6",4130"url": "versions_2_3_6.html",4131"isFile": true,4132"children": [4133{4134"title": "Changes on the Java side",4135"url": "versions_2_3_6.html#autoid_200",4136"isFile": false,4137"children": [4138]4139}4140]4141}4142,4143{4144"title": "2.3.5",4145"url": "versions_2_3_5.html",4146"isFile": true,4147"children": [4148{4149"title": "Changes on the FTL side",4150"url": "versions_2_3_5.html#autoid_201",4151"isFile": false,4152"children": [4153]4154}4155,4156{4157"title": "Changes on the Java side",4158"url": "versions_2_3_5.html#autoid_202",4159"isFile": false,4160"children": [4161]4162}4163]4164}4165,4166{4167"title": "2.3.4",4168"url": "versions_2_3_4.html",4169"isFile": true,4170"children": [4171{4172"title": "Changes on the FTL side",4173"url": "versions_2_3_4.html#autoid_203",4174"isFile": false,4175"children": [4176]4177}4178,4179{4180"title": "Changes on the Java side",4181"url": "versions_2_3_4.html#autoid_204",4182"isFile": false,4183"children": [4184]4185}4186,4187{4188"title": "Other changes",4189"url": "versions_2_3_4.html#autoid_205",4190"isFile": false,4191"children": [4192]4193}4194]4195}4196,4197{4198"title": "2.3.3",4199"url": "versions_2_3_3.html",4200"isFile": true,4201"children": [4202{4203"title": "Changes on the FTL side",4204"url": "versions_2_3_3.html#autoid_206",4205"isFile": false,4206"children": [4207]4208}4209,4210{4211"title": "Changes on the Java side",4212"url": "versions_2_3_3.html#autoid_207",4213"isFile": false,4214"children": [4215]4216}4217,4218{4219"title": "Other changes",4220"url": "versions_2_3_3.html#autoid_208",4221"isFile": false,4222"children": [4223]4224}4225]4226}4227,4228{4229"title": "2.3.2",4230"url": "versions_2_3_2.html",4231"isFile": true,4232"children": [4233{4234"title": "Changes on the Java side",4235"url": "versions_2_3_2.html#autoid_209",4236"isFile": false,4237"children": [4238]4239}4240]4241}4242,4243{4244"title": "2.3.1",4245"url": "versions_2_3_1.html",4246"isFile": true,4247"children": [4248{4249"title": "Possible backward compatibility issue",4250"url": "versions_2_3_1.html#autoid_210",4251"isFile": false,4252"children": [4253]4254}4255,4256{4257"title": "Changes on the FTL side",4258"url": "versions_2_3_1.html#autoid_211",4259"isFile": false,4260"children": [4261]4262}4263,4264{4265"title": "Changes on the Java side",4266"url": "versions_2_3_1.html#autoid_212",4267"isFile": false,4268"children": [4269]4270}4271,4272{4273"title": "Other changes",4274"url": "versions_2_3_1.html#autoid_213",4275"isFile": false,4276"children": [4277]4278}4279,4280{4281"title": "The history of the releases before the final version",4282"url": "versions_2_3_1.html#autoid_214",4283"isFile": false,4284"children": [4285{4286"title": "Differences between the preview release and final\n release",4287"url": "versions_2_3_1.html#autoid_215",4288"isFile": false,4289"children": [4290]4291}4292]4293}4294]4295}4296,4297{4298"title": "2.3",4299"url": "versions_2_3.html",4300"isFile": true,4301"children": [4302{4303"title": "Non backward-compatible changes!",4304"url": "versions_2_3.html#autoid_216",4305"isFile": false,4306"children": [4307]4308}4309,4310{4311"title": "Changes on the FTL side",4312"url": "versions_2_3.html#autoid_217",4313"isFile": false,4314"children": [4315]4316}4317,4318{4319"title": "Changes on the Java side",4320"url": "versions_2_3.html#autoid_218",4321"isFile": false,4322"children": [4323]4324}4325,4326{4327"title": "Other changes",4328"url": "versions_2_3.html#autoid_219",4329"isFile": false,4330"children": [4331]4332}4333,4334{4335"title": "The history of the releases before the final version",4336"url": "versions_2_3.html#autoid_220",4337"isFile": false,4338"children": [4339{4340"title": "Differences between the final release and Release Candidate\n 4",4341"url": "versions_2_3.html#autoid_221",4342"isFile": false,4343"children": [4344]4345}4346,4347{4348"title": "Differences between the Release Candidate 4 and Release\n Candidate 3",4349"url": "versions_2_3.html#autoid_222",4350"isFile": false,4351"children": [4352]4353}4354,4355{4356"title": "Differences between the Release Candidate 3 and Release\n Candidate 2",4357"url": "versions_2_3.html#autoid_223",4358"isFile": false,4359"children": [4360]4361}4362,4363{4364"title": "Differences between the Release Candidate 2 and Release\n Candidate 1",4365"url": "versions_2_3.html#autoid_224",4366"isFile": false,4367"children": [4368]4369}4370,4371{4372"title": "Differences between the Release Candidate 1 and Preview 16\n releases",4373"url": "versions_2_3.html#autoid_225",4374"isFile": false,4375"children": [4376]4377}4378,4379{4380"title": "Differences between the Preview 16 and Preview 15\n releases",4381"url": "versions_2_3.html#autoid_226",4382"isFile": false,4383"children": [4384]4385}4386,4387{4388"title": "Differences between the Preview 15 and Preview 14\n releases",4389"url": "versions_2_3.html#autoid_227",4390"isFile": false,4391"children": [4392]4393}4394,4395{4396"title": "Differences between the Preview 14 and Preview 13\n releases",4397"url": "versions_2_3.html#autoid_228",4398"isFile": false,4399"children": [4400]4401}4402,4403{4404"title": "Differences between the Preview 13 and Preview 12\n releases",4405"url": "versions_2_3.html#autoid_229",4406"isFile": false,4407"children": [4408]4409}4410,4411{4412"title": "Differences between the Preview 12 and Preview 11\n releases",4413"url": "versions_2_3.html#autoid_230",4414"isFile": false,4415"children": [4416]4417}4418,4419{4420"title": "Differences between the Preview 11 and Preview 10\n releases",4421"url": "versions_2_3.html#autoid_231",4422"isFile": false,4423"children": [4424]4425}4426,4427{4428"title": "Differences between the Preview 10 and Preview 9\n releases",4429"url": "versions_2_3.html#autoid_232",4430"isFile": false,4431"children": [4432]4433}4434,4435{4436"title": "Differences between the Preview 9 and Preview 8\n releases",4437"url": "versions_2_3.html#autoid_233",4438"isFile": false,4439"children": [4440]4441}4442,4443{4444"title": "Differences between the Preview 8 and Preview 7\n releases",4445"url": "versions_2_3.html#autoid_234",4446"isFile": false,4447"children": [4448]4449}4450,4451{4452"title": "Differences between the Preview 7 and Preview 6\n releases",4453"url": "versions_2_3.html#autoid_235",4454"isFile": false,4455"children": [4456]4457}4458,4459{4460"title": "Differences between the Preview 6 and Preview 5\n releases",4461"url": "versions_2_3.html#autoid_236",4462"isFile": false,4463"children": [4464]4465}4466,4467{4468"title": "Differences between the Preview 5 and Preview 4\n releases",4469"url": "versions_2_3.html#autoid_237",4470"isFile": false,4471"children": [4472]4473}4474,4475{4476"title": "Differences between the Preview 4 and Preview 3\n releases",4477"url": "versions_2_3.html#autoid_238",4478"isFile": false,4479"children": [4480]4481}4482,4483{4484"title": "Differences between the Preview 3 and Preview 2\n releases",4485"url": "versions_2_3.html#autoid_239",4486"isFile": false,4487"children": [4488]4489}4490,4491{4492"title": "Differences between the Preview 2 and Preview 1\n releases",4493"url": "versions_2_3.html#autoid_240",4494"isFile": false,4495"children": [4496]4497}4498]4499}4500]4501}4502,4503{4504"title": "2.2.8",4505"url": "versions_2_2_8.html",4506"isFile": true,4507"children": [4508{4509"title": "Changes on the FTL side",4510"url": "versions_2_2_8.html#autoid_241",4511"isFile": false,4512"children": [4513]4514}4515,4516{4517"title": "Changes on the Java side",4518"url": "versions_2_2_8.html#autoid_242",4519"isFile": false,4520"children": [4521]4522}4523,4524{4525"title": "Other changes",4526"url": "versions_2_2_8.html#autoid_243",4527"isFile": false,4528"children": [4529]4530}4531]4532}4533,4534{4535"title": "2.2.7",4536"url": "versions_2_2_7.html",4537"isFile": true,4538"children": [4539{4540"title": "Changes on the Java side",4541"url": "versions_2_2_7.html#autoid_244",4542"isFile": false,4543"children": [4544]4545}4546]4547}4548,4549{4550"title": "2.2.6",4551"url": "versions_2_2_6.html",4552"isFile": true,4553"children": [4554{4555"title": "Changes on the FTL side",4556"url": "versions_2_2_6.html#autoid_245",4557"isFile": false,4558"children": [4559]4560}4561,4562{4563"title": "Changes on the Java side",4564"url": "versions_2_2_6.html#autoid_246",4565"isFile": false,4566"children": [4567]4568}4569,4570{4571"title": "Other changes",4572"url": "versions_2_2_6.html#autoid_247",4573"isFile": false,4574"children": [4575]4576}4577]4578}4579,4580{4581"title": "2.2.5",4582"url": "versions_2_2_5.html",4583"isFile": true,4584"children": [4585{4586"title": "Changes on the Java side",4587"url": "versions_2_2_5.html#autoid_248",4588"isFile": false,4589"children": [4590]4591}4592]4593}4594,4595{4596"title": "2.2.4",4597"url": "versions_2_2_4.html",4598"isFile": true,4599"children": [4600{4601"title": "Changes on the Java side",4602"url": "versions_2_2_4.html#autoid_249",4603"isFile": false,4604"children": [4605]4606}4607,4608{4609"title": "Other changes",4610"url": "versions_2_2_4.html#autoid_250",4611"isFile": false,4612"children": [4613]4614}4615]4616}4617,4618{4619"title": "2.2.3",4620"url": "versions_2_2_3.html",4621"isFile": true,4622"children": [4623{4624"title": "Changes on the FTL side",4625"url": "versions_2_2_3.html#autoid_251",4626"isFile": false,4627"children": [4628]4629}4630,4631{4632"title": "Changes on the Java side",4633"url": "versions_2_2_3.html#autoid_252",4634"isFile": false,4635"children": [4636]4637}4638]4639}4640,4641{4642"title": "2.2.2",4643"url": "versions_2_2_2.html",4644"isFile": true,4645"children": [4646{4647"title": "Changes on the Java side",4648"url": "versions_2_2_2.html#autoid_253",4649"isFile": false,4650"children": [4651]4652}4653]4654}4655,4656{4657"title": "2.2.1",4658"url": "versions_2_2_1.html",4659"isFile": true,4660"children": [4661{4662"title": "Changes on the FTL side",4663"url": "versions_2_2_1.html#autoid_254",4664"isFile": false,4665"children": [4666]4667}4668,4669{4670"title": "Changes on the Java side",4671"url": "versions_2_2_1.html#autoid_255",4672"isFile": false,4673"children": [4674]4675}4676]4677}4678,4679{4680"title": "2.2",4681"url": "versions_2_2.html",4682"isFile": true,4683"children": [4684{4685"title": "Non backward-compatible changes!",4686"url": "versions_2_2.html#autoid_256",4687"isFile": false,4688"children": [4689]4690}4691,4692{4693"title": "Changes in FTL (FreeMarker Template Language)",4694"url": "versions_2_2.html#autoid_257",4695"isFile": false,4696"children": [4697]4698}4699,4700{4701"title": "Changes on the Java side",4702"url": "versions_2_2.html#autoid_258",4703"isFile": false,4704"children": [4705]4706}4707,4708{4709"title": "Other changes",4710"url": "versions_2_2.html#autoid_259",4711"isFile": false,4712"children": [4713]4714}4715,4716{4717"title": "The history of the releases before the final version",4718"url": "versions_2_2.html#autoid_260",4719"isFile": false,4720"children": [4721{4722"title": "Differences between the final and RC2 releases",4723"url": "versions_2_2.html#autoid_261",4724"isFile": false,4725"children": [4726]4727}4728,4729{4730"title": "Differences between the RC2 and RC1 releases",4731"url": "versions_2_2.html#autoid_262",4732"isFile": false,4733"children": [4734]4735}4736,4737{4738"title": "Differences between the Preview 2 and RC1 releases",4739"url": "versions_2_2.html#autoid_263",4740"isFile": false,4741"children": [4742]4743}4744,4745{4746"title": "Differences between the Preview 1 and Preview 2\n releases",4747"url": "versions_2_2.html#autoid_264",4748"isFile": false,4749"children": [4750]4751}4752]4753}4754]4755}4756,4757{4758"title": "2.1.5",4759"url": "versions_2_1_5.html",4760"isFile": true,4761"children": [4762{4763"title": "Changes on the Java side",4764"url": "versions_2_1_5.html#autoid_265",4765"isFile": false,4766"children": [4767]4768}4769]4770}4771,4772{4773"title": "2.1.4",4774"url": "versions_2_1_4.html",4775"isFile": true,4776"children": [4777{4778"title": "Changes on the Java side",4779"url": "versions_2_1_4.html#autoid_266",4780"isFile": false,4781"children": [4782]4783}4784]4785}4786,4787{4788"title": "2.1.3",4789"url": "versions_2_1_3.html",4790"isFile": true,4791"children": [4792{4793"title": "Changes on the FTL side",4794"url": "versions_2_1_3.html#autoid_267",4795"isFile": false,4796"children": [4797]4798}4799,4800{4801"title": "Other changes",4802"url": "versions_2_1_3.html#autoid_268",4803"isFile": false,4804"children": [4805]4806}4807]4808}4809,4810{4811"title": "2.1.2",4812"url": "versions_2_1_2.html",4813"isFile": true,4814"children": [4815{4816"title": "Changes in FTL (FreeMarker Template Language)",4817"url": "versions_2_1_2.html#autoid_269",4818"isFile": false,4819"children": [4820]4821}4822,4823{4824"title": "Other changes",4825"url": "versions_2_1_2.html#autoid_270",4826"isFile": false,4827"children": [4828]4829}4830]4831}4832,4833{4834"title": "2.1.1",4835"url": "versions_2_1_1.html",4836"isFile": true,4837"children": [4838{4839"title": "Changes in FTL (FreeMarker Template Language)",4840"url": "versions_2_1_1.html#autoid_271",4841"isFile": false,4842"children": [4843]4844}4845,4846{4847"title": "Changes on the Java side",4848"url": "versions_2_1_1.html#autoid_272",4849"isFile": false,4850"children": [4851]4852}4853]4854}4855,4856{4857"title": "2.1",4858"url": "versions_2_1.html",4859"isFile": true,4860"children": [4861{4862"title": "Changes in FTL (FreeMarker Template Language)",4863"url": "versions_2_1.html#autoid_273",4864"isFile": false,4865"children": [4866]4867}4868,4869{4870"title": "Changes on the Java side",4871"url": "versions_2_1.html#autoid_274",4872"isFile": false,4873"children": [4874]4875}4876,4877{4878"title": "Other changes",4879"url": "versions_2_1.html#autoid_275",4880"isFile": false,4881"children": [4882]4883}4884,4885{4886"title": "Differences between the RC1 and final release",4887"url": "versions_2_1.html#autoid_276",4888"isFile": false,4889"children": [4890]4891}4892]4893}4894,4895{4896"title": "2.01",4897"url": "versions_2_01.html",4898"isFile": true,4899"children": [4900]4901}4902,4903{4904"title": "2.0",4905"url": "versions_2_0.html",4906"isFile": true,4907"children": [4908{4909"title": "Bugfixes",4910"url": "versions_2_0.html#autoid_277",4911"isFile": false,4912"children": [4913]4914}4915,4916{4917"title": "Changes to the Template language",4918"url": "versions_2_0.html#autoid_278",4919"isFile": false,4920"children": [4921]4922}4923,4924{4925"title": "Changes to the API",4926"url": "versions_2_0.html#autoid_279",4927"isFile": false,4928"children": [4929]4930}4931,4932{4933"title": "Miscellany",4934"url": "versions_2_0.html#autoid_280",4935"isFile": false,4936"children": [4937]4938}4939]4940}4941,4942{4943"title": "2.0 RC3",4944"url": "versions_2_0RC3.html",4945"isFile": true,4946"children": [4947{4948"title": "Bug Fixes",4949"url": "versions_2_0RC3.html#autoid_281",4950"isFile": false,4951"children": [4952]4953}4954,4955{4956"title": "Changes to the Template Language",4957"url": "versions_2_0RC3.html#autoid_282",4958"isFile": false,4959"children": [4960]4961}4962,4963{4964"title": "API changes",4965"url": "versions_2_0RC3.html#autoid_283",4966"isFile": false,4967"children": [4968]4969}4970]4971}4972,4973{4974"title": "2.0 RC2",4975"url": "versions_2_0RC2.html",4976"isFile": true,4977"children": [4978{4979"title": "Changes to Template Language",4980"url": "versions_2_0RC2.html#autoid_284",4981"isFile": false,4982"children": [4983]4984}4985,4986{4987"title": "API Changes",4988"url": "versions_2_0RC2.html#autoid_285",4989"isFile": false,4990"children": [4991]4992}4993]4994}4995,4996{4997"title": "2.0 RC1",4998"url": "versions_2_0RC1.html",4999"isFile": true,5000"children": [5001{5002"title": "Support for Numerical operations, both arithmetic and\n boolean, as well as numerical ranges.",5003"url": "versions_2_0RC1.html#autoid_286",5004"isFile": false,5005"children": [5006]5007}5008,5009{5010"title": "API Changes",5011"url": "versions_2_0RC1.html#autoid_287",5012"isFile": false,5013"children": [5014]5015}5016,5017{5018"title": "Syntactical Miscellany",5019"url": "versions_2_0RC1.html#autoid_288",5020"isFile": false,5021"children": [5022]5023}5024]5025}5026]5027}5028,5029{5030"title": "Installing FreeMarker",5031"url": "app_install.html",5032"isFile": true,5033"children": [5034]5035}5036,5037{5038"title": "Legal",5039"url": "app_legal.html",5040"isFile": true,5041"children": [5042{5043"title": "License",5044"url": "app_license.html",5045"isFile": true,5046"children": [5047]5048}5049,5050{5051"title": "Export Control",5052"url": "app_eccn.html",5053"isFile": true,5054"children": [5055]5056}5057]5058}5059]5060}5061,5062{5063"title": "Glossary",5064"url": "gloss.html",5065"isFile": true,5066"children": [5067]5068}5069,5070{5071"title": "Alphabetical Index",5072"url": "alphaidx.html",5073"isFile": true,5074"children": [5075]5076}5077]5078}...
ContextJsunit.test.js
Source:ContextJsunit.test.js
...102 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH;103 await zlib.zipFile(src, zipDest, options,104 (err, data) => {105 var zipStat = fileio.statSync(zipDest);106 var isFile = zipStat.isFile();107 expect(isFile).assertTrue();108 var srcSize = fileio.statSync(src).size;109 var destSize = zipStat.size;110 expect(srcSize>destSize).assertTrue();111 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);112 113 zlib.unzipFile(zipDest, unzipDir, options,114 (err, data) => {115 var unzipStat = fileio.statSync(unzipDest);116 var isFile = unzipStat.isFile();117 expect(isFile).assertTrue(); 118 var destSize = unzipStat.size;119 var originSize = fileio.statSync(src).size;120 var result = (originSize == destSize);121 expect(result).assertTrue();122 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);123 done(); 124 })125 }); 126 } catch(err) {127 console.error('FWK_ZipFile_0500 err:' + err);128 done();129 }130 console.log("==================FWK_ZipFile_0500 end==================");131})132/*133* @tc.number: FWK_ZipFile_0600134* @tc.name: zipFile 135* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH136*/137it('FWK_ZipFile_0600', 0, async function (done) {138 console.log("==================FWK_ZipFile_0600 start==================");139 var src = "/data/test/ceshi.txt";140 var zipDest = "/data/testA/ceshi.zip";141 var unzipDir = "/data/testA/";142 var unzipDest = "/data/testA/ceshi.txt";143 144 try {145 var options = {};146 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH,147 await zlib.zipFile(src, zipDest, options,148 (err, data) => {149 var zipStat = fileio.statSync(zipDest);150 var isFile = zipStat.isFile();151 expect(isFile).assertTrue();152 var srcSize = fileio.statSync(src).size;153 var destSize = zipStat.size;154 expect(srcSize>destSize).assertTrue();155 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);156 157 zlib.unzipFile(zipDest, unzipDir, options,158 (err, data) => {159 var unzipStat = fileio.statSync(unzipDest);160 var isFile = unzipStat.isFile();161 expect(isFile).assertTrue(); 162 var destSize = unzipStat.size;163 var originSize = fileio.statSync(src).size;164 var result = (originSize == destSize);165 expect(result).assertTrue();166 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);167 done(); 168 })169 }); 170 } catch(err) {171 console.error('FWK_ZipFile_0500 err:' + err);172 done();173 }174 console.log("==================FWK_ZipFile_0600 end==================");175})176/*177* @tc.number: FWK_ZipFile_0700178* @tc.name: zipFile 179* @tc.desc: zipFile180*/181it('FWK_ZipFile_0700', 0, async function (done) {182 console.log("==================FWK_ZipFile_0700 start==================");183 var src = "/data/test/ceshi.txt";184 var zipDest = "/data/testA/ceshi.zip";185 var unzipDir = "/data/testA/";186 var unzipDest = "/data/testA/ceshi.txt";187 188 try{189 var options = {};190 options.flush = zlib.FlushType.FLUSH_TYPE_SYNC_FLUSH,191 await zlib.zipFile(src, zipDest, options,192 (err, data) => {193 var zipStat = fileio.statSync(zipDest);194 var isFile = zipStat.isFile();195 expect(isFile).assertTrue();196 var srcSize = fileio.statSync(src).size;197 var destSize = zipStat.size;198 expect(srcSize>destSize).assertTrue();199 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);200 201 zlib.unzipFile(zipDest, unzipDir, options,202 (err, data) => {203 var unzipStat = fileio.statSync(unzipDest);204 var isFile = unzipStat.isFile();205 expect(isFile).assertTrue(); 206 var destSize = unzipStat.size;207 var originSize = fileio.statSync(src).size;208 var result = (originSize == destSize);209 expect(result).assertTrue();210 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);211 done(); 212 })213 }); 214 } catch(err) {215 console.error('FWK_ZipFile_0500 err:' + err);216 done();217 }218 console.log("==================FWK_ZipFile_0700 end=================="); 219})220/*221* @tc.number: FWK_ZipFile_0800222* @tc.name: zipFile 223* @tc.desc: FlushType.FLUSH_TYPE_FULL_FLUSH224*/225it('FWK_ZipFile_0800', 0, async function (done) {226 console.log("==================FWK_ZipFile_0800 start==================");227 var src = "/data/test/ceshi.txt";228 var zipDest = "/data/testA/ceshi.zip";229 var unzipDir = "/data/testA/";230 var unzipDest = "/data/testA/ceshi.txt";231 232 try{233 var options = {};234 options.flush = zlib.FlushType.FLUSH_TYPE_FULL_FLUSH,235 await zlib.zipFile(src, zipDest, options,236 (err, data) => {237 var zipStat = fileio.statSync(zipDest);238 var isFile = zipStat.isFile();239 expect(isFile).assertTrue();240 var srcSize = fileio.statSync(src).size;241 var destSize = zipStat.size;242 expect(srcSize>destSize).assertTrue();243 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);244 245 zlib.unzipFile(zipDest, unzipDir, options,246 (err, data) => {247 var unzipStat = fileio.statSync(unzipDest);248 var isFile = unzipStat.isFile();249 expect(isFile).assertTrue(); 250 var destSize = unzipStat.size;251 var originSize = fileio.statSync(src).size;252 var result = (originSize == destSize);253 expect(result).assertTrue();254 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);255 done(); 256 })257 }); 258 } catch(err) {259 console.error('FWK_ZipFile_0500 err:' + err);260 done();261 }262 console.log("==================FWK_ZipFile_0800 end==================");263})264/*265* @tc.number: FWK_ZipFile_0900266* @tc.name: zipFile 267* @tc.desc: zipFile268*/269it('FWK_ZipFile_0900', 0, async function (done) {270 console.log("==================FWK_ZipFile_0900 start==================");271 var src = "/data/test/ceshi.txt";272 var zipDest = "/data/testA/ceshi.zip";273 var unzipDir = "/data/testA/";274 var unzipDest = "/data/testA/ceshi.txt";275 276 try{277 var options = {};278 options.flush = zlib.FlushType.FLUSH_TYPE_FINISH,279 await zlib.zipFile(src, zipDest, options,280 (err, data) => {281 var zipStat = fileio.statSync(zipDest);282 var isFile = zipStat.isFile();283 expect(isFile).assertTrue();284 var srcSize = fileio.statSync(src).size;285 var destSize = zipStat.size;286 expect(srcSize>destSize).assertTrue();287 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);288 289 zlib.unzipFile(zipDest, unzipDir, options,290 (err, data) => {291 var unzipStat = fileio.statSync(unzipDest);292 var isFile = unzipStat.isFile();293 expect(isFile).assertTrue(); 294 var destSize = unzipStat.size;295 var originSize = fileio.statSync(src).size;296 var result = (originSize == destSize);297 expect(result).assertTrue();298 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);299 done(); 300 })301 }); 302 } catch(err) {303 console.error('FWK_ZipFile_0500 err:' + err);304 done();305 }306 console.log("==================FWK_ZipFile_0900 end==================");307})308/*309* @tc.number: FWK_ZipFile_1000310* @tc.name: zipFile 311* @tc.desc: FlushType.FLUSH_TYPE_BLOCK312*/313it('FWK_ZipFile_1000', 0, async function (done) {314 console.log("==================FWK_ZipFile_1000 start==================");315 var src = "/data/test/ceshi.txt";316 var zipDest = "/data/testA/ceshi.zip";317 var unzipDir = "/data/testA/";318 var unzipDest = "/data/testA/ceshi.txt";319 320 try{321 var options = {};322 options.flush = zlib.FlushType.FLUSH_TYPE_BLOCK,323 await zlib.zipFile(src, zipDest, options,324 (err, data) => {325 var zipStat = fileio.statSync(zipDest);326 var isFile = zipStat.isFile();327 expect(isFile).assertTrue();328 var srcSize = fileio.statSync(src).size;329 var destSize = zipStat.size;330 expect(srcSize>destSize).assertTrue();331 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);332 333 zlib.unzipFile(zipDest, unzipDir, options,334 (err, data) => {335 var unzipStat = fileio.statSync(unzipDest);336 var isFile = unzipStat.isFile();337 expect(isFile).assertTrue(); 338 var destSize = unzipStat.size;339 var originSize = fileio.statSync(src).size;340 var result = (originSize == destSize);341 expect(result).assertTrue();342 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);343 done(); 344 })345 }); 346 } catch(err) {347 console.error('FWK_ZipFile_0500 err:' + err);348 done();349 }350 console.log("==================FWK_ZipFile_1000 end=================="); 351})352/*353* @tc.number: FWK_ZipFile_1100354* @tc.name: zipFile 355* @tc.desc: FlushType.FLUSH_TYPE_TREES356*/357it('FWK_ZipFile_1100', 0, async function (done) {358 console.log("==================FWK_ZipFile_1100 start==================");359 var src = "/data/test/ceshi.txt";360 var zipDest = "/data/testA/ceshi.zip";361 var unzipDir = "/data/testA/";362 var unzipDest = "/data/testA/ceshi.txt";363 364 try{365 var options = {};366 options.flush = zlib.FlushType.FLUSH_TYPE_TREES,367 await zlib.zipFile(src, zipDest, options,368 (err, data) => {369 var zipStat = fileio.statSync(zipDest);370 var isFile = zipStat.isFile();371 expect(isFile).assertTrue();372 var srcSize = fileio.statSync(src).size;373 var destSize = zipStat.size;374 expect(srcSize>destSize).assertTrue();375 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);376 377 zlib.unzipFile(zipDest, unzipDir, options,378 (err, data) => {379 var unzipStat = fileio.statSync(unzipDest);380 var isFile = unzipStat.isFile();381 expect(isFile).assertTrue(); 382 var destSize = unzipStat.size;383 var originSize = fileio.statSync(src).size;384 var result = (originSize == destSize);385 expect(result).assertTrue();386 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);387 done(); 388 })389 }); 390 } catch(err) {391 console.error('FWK_ZipFile_0500 err:' + err);392 done();393 }394 console.log("==================FWK_ZipFile_1100 end=================="); 395 sleep(10); 396})397/*398* @tc.number: FWK_ZipFile_1200399* @tc.name: zipFile 400* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH401*/402 it('FWK_ZipFile_1200', 0, async function (done) {403 console.log("==================FWK_ZipFile_1200 start==================");404 var src = "/data/test/ceshi.txt";405 var zipDest = "/data/testA/ceshi.zip";406 var unzipDir = "/data/testA/";407 var unzipDest = "/data/testA/ceshi.txt";408 409 try{410 var options = {};411 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH,412 await zlib.zipFile(src, zipDest, options,413 (err, data) => {414 var zipStat = fileio.statSync(zipDest);415 var isFile = zipStat.isFile();416 expect(isFile).assertTrue();417 var srcSize = fileio.statSync(src).size;418 var destSize = zipStat.size;419 expect(srcSize>destSize).assertTrue();420 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);421 422 zlib.unzipFile(zipDest, unzipDir, options,423 (err, data) => {424 var unzipStat = fileio.statSync(unzipDest);425 var isFile = unzipStat.isFile();426 expect(isFile).assertTrue(); 427 var destSize = unzipStat.size;428 var originSize = fileio.statSync(src).size;429 var result = (originSize == destSize);430 expect(result).assertTrue();431 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);432 done(); 433 })434 }); 435 } catch(err) {436 console.error('FWK_ZipFile_0500 err:' + err);437 done();438 }439 console.log("==================FWK_ZipFile_1200 end=================="); 440 sleep(10);441})442/*443* @tc.number: FWK_ZipFile_1300444* @tc.name: zipFile 445* @tc.desc: FlushType.FLUSH_TYPE_PARTIAL_FLUSH446*/447it('FWK_ZipFile_1300', 0, async function (done) {448 console.log("==================FWK_ZipFile_1300 start==================");449 var src = "/data/test/ceshi.txt";450 var zipDest = "/data/testA/ceshi.zip";451 var unzipDir = "/data/testA/";452 var unzipDest = "/data/testA/ceshi.txt";453 454 try{455 var options = {};456 options.flush = zlib.FlushType.FLUSH_TYPE_PARTIAL_FLUSH,457 await zlib.zipFile(src, zipDest, options,458 (err, data) => {459 var zipStat = fileio.statSync(zipDest);460 var isFile = zipStat.isFile();461 expect(isFile).assertTrue();462 var srcSize = fileio.statSync(src).size;463 var destSize = zipStat.size;464 expect(srcSize>destSize).assertTrue();465 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);466 467 zlib.unzipFile(zipDest, unzipDir, options,468 (err, data) => {469 var unzipStat = fileio.statSync(unzipDest);470 var isFile = unzipStat.isFile();471 expect(isFile).assertTrue(); 472 var destSize = unzipStat.size;473 var originSize = fileio.statSync(src).size;474 var result = (originSize == destSize);475 expect(result).assertTrue();476 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);477 done(); 478 })479 }); 480 } catch(err) {481 console.error('FWK_ZipFile_0500 err:' + err);482 done();483 }484 console.log("==================FWK_ZipFile_1300 end=================="); 485})486/*487* @tc.number: FWK_ZipFile_1400488* @tc.name: zipFile 489* @tc.desc: FlushType.FLUSH_TYPE_SYNC_FLUSH490*/491it('FWK_ZipFile_1400', 0, async function (done) {492 console.log("==================FWK_ZipFile_1400 start==================");493 var src = "/data/test/ceshi.txt";494 var zipDest = "/data/testA/ceshi.zip";495 var unzipDir = "/data/testA/";496 var unzipDest = "/data/testA/ceshi.txt";497 498 try{499 var options = {};500 options.flush = zlib.FlushType.FLUSH_TYPE_SYNC_FLUSH,501 await zlib.zipFile(src, zipDest, options,502 (err, data) => {503 var zipStat = fileio.statSync(zipDest);504 var isFile = zipStat.isFile();505 expect(isFile).assertTrue();506 var srcSize = fileio.statSync(src).size;507 var destSize = zipStat.size;508 expect(srcSize>destSize).assertTrue();509 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);510 511 zlib.unzipFile(zipDest, unzipDir, options,512 (err, data) => {513 var unzipStat = fileio.statSync(unzipDest);514 var isFile = unzipStat.isFile();515 expect(isFile).assertTrue(); 516 var destSize = unzipStat.size;517 var originSize = fileio.statSync(src).size;518 var result = (originSize == destSize);519 expect(result).assertTrue();520 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);521 done(); 522 })523 }); 524 } catch(err) {525 console.error('FWK_ZipFile_0500 err:' + err);526 done();527 }528 console.log("==================FWK_ZipFile_1400 end=================="); 529})530/*531* @tc.number: FWK_ZipFile_1500532* @tc.name: zipFile 533* @tc.desc: FlushType.FLUSH_TYPE_FULL_FLUSH534*/535it('FWK_ZipFile_1500', 0, async function (done) {536 console.log("==================FWK_ZipFile_1500 start==================");537 var src = "/data/test/ceshi.txt";538 var zipDest = "/data/testA/ceshi.zip";539 var unzipDir = "/data/testA/";540 var unzipDest = "/data/testA/ceshi.txt";541 542 try{543 var options = {};544 options.flush = zlib.FlushType.FLUSH_TYPE_FULL_FLUSH,545 await zlib.zipFile(src, zipDest, options,546 (err, data) => {547 var zipStat = fileio.statSync(zipDest);548 var isFile = zipStat.isFile();549 expect(isFile).assertTrue();550 var srcSize = fileio.statSync(src).size;551 var destSize = zipStat.size;552 expect(srcSize>destSize).assertTrue();553 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);554 555 zlib.unzipFile(zipDest, unzipDir, options,556 (err, data) => {557 var unzipStat = fileio.statSync(unzipDest);558 var isFile = unzipStat.isFile();559 expect(isFile).assertTrue(); 560 var destSize = unzipStat.size;561 var originSize = fileio.statSync(src).size;562 var result = (originSize == destSize);563 expect(result).assertTrue();564 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);565 done(); 566 })567 }); 568 } catch(err) {569 console.error('FWK_ZipFile_0500 err:' + err);570 done();571 }572 console.log("==================FWK_ZipFile_1500 end=================="); 573})574/*575* @tc.number: FWK_ZipFile_1600576* @tc.name: zipFile 577* @tc.desc: FlushType.FLUSH_TYPE_FINISH578*/579it('FWK_ZipFile_1600', 0, async function (done) {580 console.log("==================FWK_ZipFile_1600 start==================");581 var src = "/data/test/ceshi.txt";582 var zipDest = "/data/testA/ceshi.zip";583 var unzipDir = "/data/testA/";584 var unzipDest = "/data/testA/ceshi.txt";585 586 try{587 var options = {};588 options.flush = zlib.FlushType.FLUSH_TYPE_FINISH,589 await zlib.zipFile(src, zipDest, options,590 (err, data) => {591 var zipStat = fileio.statSync(zipDest);592 var isFile = zipStat.isFile();593 expect(isFile).assertTrue();594 var srcSize = fileio.statSync(src).size;595 var destSize = zipStat.size;596 expect(srcSize>destSize).assertTrue();597 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);598 599 zlib.unzipFile(zipDest, unzipDir, options,600 (err, data) => {601 var unzipStat = fileio.statSync(unzipDest);602 var isFile = unzipStat.isFile();603 expect(isFile).assertTrue(); 604 var destSize = unzipStat.size;605 var originSize = fileio.statSync(src).size;606 var result = (originSize == destSize);607 expect(result).assertTrue();608 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);609 done(); 610 })611 }); 612 } catch(err) {613 console.error('FWK_ZipFile_0500 err:' + err);614 done();615 }616 console.log("==================FWK_ZipFile_1600 end=================="); 617})618/*619* @tc.number: FWK_ZipFile_1700620* @tc.name: zipFile 621* @tc.desc: zipFile622*/623it('FWK_ZipFile_1700', 0, async function (done) {624 console.log("==================FWK_ZipFile_1700 start==================");625 var src = "/data/test/ceshi.txt";626 var zipDest = "/data/testA/ceshi.zip";627 var unzipDir = "/data/testA/";628 var unzipDest = "/data/testA/ceshi.txt";629 630 try{631 var options = {};632 options.flush = zlib.FlushType.FLUSH_TYPE_BLOCK,633 await zlib.zipFile(src, zipDest, options,634 (err, data) => {635 var zipStat = fileio.statSync(zipDest);636 var isFile = zipStat.isFile();637 expect(isFile).assertTrue();638 var srcSize = fileio.statSync(src).size;639 var destSize = zipStat.size;640 expect(srcSize>destSize).assertTrue();641 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);642 643 zlib.unzipFile(zipDest, unzipDir, options,644 (err, data) => {645 var unzipStat = fileio.statSync(unzipDest);646 var isFile = unzipStat.isFile();647 expect(isFile).assertTrue(); 648 var destSize = unzipStat.size;649 var originSize = fileio.statSync(src).size;650 var result = (originSize == destSize);651 expect(result).assertTrue();652 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);653 done(); 654 })655 }); 656 } catch(err) {657 console.error('FWK_ZipFile_0500 err:' + err);658 done();659 }660 console.log("==================FWK_ZipFile_1700 end==================");661})662/*663* @tc.number: FWK_ZipFile_1800664* @tc.name: zipFile 665* @tc.desc: FlushType.FLUSH_TYPE_TREES666*/667it('FWK_ZipFile_1800', 0, async function (done) {668 console.log("==================FWK_ZipFile_1800 start==================");669 var src = "/data/test/ceshi.txt";670 var zipDest = "/data/testA/ceshi.zip";671 var unzipDir = "/data/testA/";672 var unzipDest = "/data/testA/ceshi.txt";673 674 try{675 var options = {};676 options.flush = zlib.FlushType.FLUSH_TYPE_TREES,677 await zlib.zipFile(src, zipDest, options,678 (err, data) => {679 var zipStat = fileio.statSync(zipDest);680 var isFile = zipStat.isFile();681 expect(isFile).assertTrue();682 var srcSize = fileio.statSync(src).size;683 var destSize = zipStat.size;684 expect(srcSize>destSize).assertTrue();685 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);686 687 zlib.unzipFile(zipDest, unzipDir, options,688 (err, data) => {689 var unzipStat = fileio.statSync(unzipDest);690 var isFile = unzipStat.isFile();691 expect(isFile).assertTrue(); 692 var destSize = unzipStat.size;693 var originSize = fileio.statSync(src).size;694 var result = (originSize == destSize);695 expect(result).assertTrue();696 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);697 done(); 698 })699 }); 700 } catch(err) {701 console.error('FWK_ZipFile_0500 err:' + err);702 done();703 }704 console.log("==================FWK_ZipFile_1800 end=================="); 705})706/*707* @tc.number: FWK_ZipFile_1900708* @tc.name: zipFile 709* @tc.desc: chunkSize:64710*/711it('FWK_ZipFile_1900', 0, async function (done) {712 console.log("==================FWK_ZipFile_1900 start==================");713 var src = "/data/test/ceshi.txt";714 var zipDest = "/data/testA/ceshi.zip";715 var unzipDir = "/data/testA/";716 var unzipDest = "/data/testA/ceshi.txt";717 718 try{719 var options = {720 chunkSize:64,721 };722 await zlib.zipFile(src, zipDest, options,723 (err, data) => {724 var zipStat = fileio.statSync(zipDest);725 var isFile = zipStat.isFile();726 expect(isFile).assertTrue();727 var srcSize = fileio.statSync(src).size;728 var destSize = zipStat.size;729 expect(srcSize>destSize).assertTrue();730 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);731 732 zlib.unzipFile(zipDest, unzipDir, options,733 (err, data) => {734 var unzipStat = fileio.statSync(unzipDest);735 var isFile = unzipStat.isFile();736 expect(isFile).assertTrue(); 737 var destSize = unzipStat.size;738 var originSize = fileio.statSync(src).size;739 var result = (originSize == destSize);740 expect(result).assertTrue();741 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);742 done(); 743 })744 }); 745} catch(err) {746 console.error('FWK_ZipFile_0500 err:' + err);747 done();748 }749 console.log("==================FWK_ZipFile_1900 end=================="); 750})751/*752* @tc.number: FWK_ZipFile_2000753* @tc.name: zipFile 754* @tc.desc: chunkSize:1024755*/756it('FWK_ZipFile_2000', 0, async function (done) {757 console.log("==================FWK_ZipFile_2000 start==================");758 var src = "/data/test/ceshi.txt";759 var zipDest = "/data/testA/ceshi.zip";760 var unzipDir = "/data/testA/";761 var unzipDest = "/data/testA/ceshi.txt";762 763 try{764 var options = {765 chunkSize:1024,766 };767 await zlib.zipFile(src, zipDest, options,768 (err, data) => {769 var zipStat = fileio.statSync(zipDest);770 var isFile = zipStat.isFile();771 expect(isFile).assertTrue();772 var srcSize = fileio.statSync(src).size;773 var destSize = zipStat.size;774 expect(srcSize>destSize).assertTrue();775 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);776 777 zlib.unzipFile(zipDest, unzipDir, options,778 (err, data) => {779 var unzipStat = fileio.statSync(unzipDest);780 var isFile = unzipStat.isFile();781 expect(isFile).assertTrue(); 782 var destSize = unzipStat.size;783 var originSize = fileio.statSync(src).size;784 var result = (originSize == destSize);785 expect(result).assertTrue();786 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);787 done(); 788 })789 }); 790} catch(err) {791 console.error('FWK_ZipFile_0500 err:' + err);792 done();793 }794 console.log("==================FWK_ZipFile_2000 end==================");795})796/*797* @tc.number: FWK_ZipFile_2100798* @tc.name: zipFile 799* @tc.desc: chunkSize:999800*/801it('FWK_ZipFile_2100', 0, async function (done) {802 console.log("==================FWK_ZipFile_2100 start==================");803 var src = "/data/test/ceshi.txt";804 var zipDest = "/data/testA/ceshi.zip";805 var unzipDir = "/data/testA/";806 var unzipDest = "/data/testA/ceshi.txt";807 808 try{809 var options = {810 chunkSize:999,811 };812 await zlib.zipFile(src, zipDest, options,813 (err, data) => {814 var zipStat = fileio.statSync(zipDest);815 var isFile = zipStat.isFile();816 expect(isFile).assertTrue();817 var srcSize = fileio.statSync(src).size;818 var destSize = zipStat.size;819 expect(srcSize>destSize).assertTrue();820 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);821 822 zlib.unzipFile(zipDest, unzipDir, options,823 (err, data) => {824 var unzipStat = fileio.statSync(unzipDest);825 var isFile = unzipStat.isFile();826 expect(isFile).assertTrue(); 827 var destSize = unzipStat.size;828 var originSize = fileio.statSync(src).size;829 var result = (originSize == destSize);830 expect(result).assertTrue();831 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);832 done(); 833 })834 }); 835} catch(err) {836 console.error('FWK_ZipFile_0500 err:' + err);837 done();838 }839 console.log("==================FWK_ZipFile_2100 end=================="); 840})841/*842* @tc.number: FWK_ZipFile_2200843* @tc.name: zipFile 844* @tc.desc: level.COMPRESS_LEVEL_NO_COMPRESSION845*/846it('FWK_ZipFile_2200', 0, async function (done) {847 console.log("==================FWK_ZipFile_2200 start==================");848 var src = "/data/test/ceshi.txt";849 var zipDest = "/data/testA/ceshi.zip";850 var unzipDir = "/data/testA/";851 var unzipDest = "/data/testA/ceshi.txt";852 try{853 var options = {};854 options.level = zlib.CompressLevel.COMPRESS_LEVEL_NO_COMPRESSION ,855 await zlib.zipFile(src, zipDest, options,856 (err, data) => {857 var zipStat = fileio.statSync(zipDest);858 var isFile = zipStat.isFile();859 expect(isFile).assertTrue();860 var srcSize = fileio.statSync(src).size;861 var destSize = zipStat.size;862 expect(srcSize>destSize).assertTrue();863 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);864 865 zlib.unzipFile(zipDest, unzipDir, options,866 (err, data) => {867 var unzipStat = fileio.statSync(unzipDest);868 var isFile = unzipStat.isFile();869 expect(isFile).assertTrue(); 870 var destSize = unzipStat.size;871 var originSize = fileio.statSync(src).size;872 var result = (originSize == destSize);873 expect(result).assertTrue();874 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);875 done(); 876 })877 }); 878 } catch(err) {879 console.error('FWK_ZipFile_0500 err:' + err);880 done();881 }882 console.log("==================FWK_ZipFile_2200 end==================");883})884/*885* @tc.number: FWK_ZipFile_2300886* @tc.name: zipFile 887* @tc.desc: level.COMPRESS_LEVEL_BEST_SPEED888*/889it('FWK_ZipFile_2300', 0, async function (done) {890 console.log("==================FWK_ZipFile_2300 start==================");891 var src = "/data/test/ceshi.txt";892 var zipDest = "/data/testA/ceshi.zip";893 var unzipDir = "/data/testA/";894 var unzipDest = "/data/testA/ceshi.txt";895 896 try{897 var options = {};898 options.level = zlib.CompressLevel.COMPRESS_LEVEL_BEST_SPEED,899 await zlib.zipFile(src, zipDest, options,900 (err, data) => {901 var zipStat = fileio.statSync(zipDest);902 var isFile = zipStat.isFile();903 expect(isFile).assertTrue();904 var srcSize = fileio.statSync(src).size;905 var destSize = zipStat.size;906 expect(srcSize>destSize).assertTrue();907 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);908 909 zlib.unzipFile(zipDest, unzipDir, options,910 (err, data) => {911 var unzipStat = fileio.statSync(unzipDest);912 var isFile = unzipStat.isFile();913 expect(isFile).assertTrue(); 914 var destSize = unzipStat.size;915 var originSize = fileio.statSync(src).size;916 var result = (originSize == destSize);917 expect(result).assertTrue();918 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);919 done(); 920 })921 }); 922 } catch(err) {923 console.error('FWK_ZipFile_0500 err:' + err);924 done();925 }926 console.log("==================FWK_ZipFile_2300 end==================");927})928/*929* @tc.number: FWK_ZipFile_2400930* @tc.name: zipFile 931* @tc.desc: level.COMPRESS_LEVEL_BEST_COMPRESSION932*/933it('FWK_ZipFile_2400', 0, async function (done) {934 console.log("==================FWK_ZipFile_2400 start==================");935 var src = "/data/test/ceshi.txt";936 var zipDest = "/data/testA/ceshi.zip";937 var unzipDir = "/data/testA/";938 var unzipDest = "/data/testA/ceshi.txt";939 940 try{941 var options = {};942 options.level = zlib.CompressLevel.COMPRESS_LEVEL_BEST_COMPRESSION,943 await zlib.zipFile(src, zipDest, options,944 (err, data) => {945 var zipStat = fileio.statSync(zipDest);946 var isFile = zipStat.isFile();947 expect(isFile).assertTrue();948 var srcSize = fileio.statSync(src).size;949 var destSize = zipStat.size;950 expect(srcSize>destSize).assertTrue();951 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);952 953 zlib.unzipFile(zipDest, unzipDir, options,954 (err, data) => {955 var unzipStat = fileio.statSync(unzipDest);956 var isFile = unzipStat.isFile();957 expect(isFile).assertTrue(); 958 var destSize = unzipStat.size;959 var originSize = fileio.statSync(src).size;960 var result = (originSize == destSize);961 expect(result).assertTrue();962 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);963 done(); 964 })965 }); 966 } catch(err) {967 console.error('FWK_ZipFile_0500 err:' + err);968 done();969 }970 console.log("==================FWK_ZipFile_2400 end=================="); 971})972/*973* @tc.number: FWK_ZipFile_2500974* @tc.name: zipFile 975* @tc.desc: level.COMPRESS_LEVEL_DEFAULT_COMPRESSION976*/977it('FWK_ZipFile_2500', 0, async function (done) {978 console.log("==================FWK_ZipFile_2500 start==================");979 var src = "/data/test/ceshi.txt";980 var zipDest = "/data/testA/ceshi.zip";981 var unzipDir = "/data/testA/";982 var unzipDest = "/data/testA/ceshi.txt";983 984 try{985 var options = {};986 options.level = zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,987 await zlib.zipFile(src, zipDest, options,988 (err, data) => {989 var zipStat = fileio.statSync(zipDest);990 var isFile = zipStat.isFile();991 expect(isFile).assertTrue();992 var srcSize = fileio.statSync(src).size;993 var destSize = zipStat.size;994 expect(srcSize>destSize).assertTrue();995 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);996 997 zlib.unzipFile(zipDest, unzipDir, options,998 (err, data) => {999 var unzipStat = fileio.statSync(unzipDest);1000 var isFile = unzipStat.isFile();1001 expect(isFile).assertTrue(); 1002 var destSize = unzipStat.size;1003 var originSize = fileio.statSync(src).size;1004 var result = (originSize == destSize);1005 expect(result).assertTrue();1006 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1007 done(); 1008 })1009 }); 1010 } catch(err) {1011 console.error('FWK_ZipFile_0500 err:' + err);1012 done();1013 }1014 console.log("==================FWK_ZipFile_2500 end==================");1015})1016/*1017* @tc.number: FWK_ZipFile_26001018* @tc.name: zipFile 1019* @tc.desc: memlevel.MEM_LEVEL_MIN_MEMLEVEL1020*/1021it('FWK_ZipFile_2600', 0, async function (done) {1022 console.log("==================FWK_ZipFile_2600 start==================");1023 var src = "/data/test/ceshi.txt";1024 var zipDest = "/data/testA/ceshi.zip";1025 var unzipDir = "/data/testA/";1026 var unzipDest = "/data/testA/ceshi.txt";1027 try{1028 var options = {};1029 options.memlevel = zlib.MemLevel.MEM_LEVEL_MIN_MEMLEVEL,1030 await zlib.zipFile(src, zipDest, options,1031 (err, data) => {1032 var zipStat = fileio.statSync(zipDest);1033 var isFile = zipStat.isFile();1034 expect(isFile).assertTrue();1035 var srcSize = fileio.statSync(src).size;1036 var destSize = zipStat.size;1037 expect(srcSize>destSize).assertTrue();1038 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1039 1040 zlib.unzipFile(zipDest, unzipDir, options,1041 (err, data) => {1042 var unzipStat = fileio.statSync(unzipDest);1043 var isFile = unzipStat.isFile();1044 expect(isFile).assertTrue(); 1045 var destSize = unzipStat.size;1046 var originSize = fileio.statSync(src).size;1047 var result = (originSize == destSize);1048 expect(result).assertTrue();1049 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1050 done(); 1051 })1052 }); 1053 } catch(err) {1054 console.error('FWK_ZipFile_0500 err:' + err);1055 done();1056 }1057 console.log("==================FWK_ZipFile_2600 end=================="); 1058})1059/*1060* @tc.number: FWK_ZipFile_27001061* @tc.name: zipFile 1062* @tc.desc: memlevel.MEM_LEVEL_MAX_MEMLEVEL1063*/1064it('FWK_ZipFile_2700', 0, async function (done) {1065 console.log("==================FWK_ZipFile_2700 start==================");1066 var src = "/data/test/ceshi.txt";1067 var zipDest = "/data/testA/ceshi.zip";1068 var unzipDir = "/data/testA/";1069 var unzipDest = "/data/testA/ceshi.txt";1070 1071 try{1072 var options = {};1073 options.memlevel = zlib.MemLevel.MEM_LEVEL_MAX_MEMLEVEL,1074 await zlib.zipFile(src, zipDest, options,1075 (err, data) => {1076 var zipStat = fileio.statSync(zipDest);1077 var isFile = zipStat.isFile();1078 expect(isFile).assertTrue();1079 var srcSize = fileio.statSync(src).size;1080 var destSize = zipStat.size;1081 expect(srcSize>destSize).assertTrue();1082 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1083 1084 zlib.unzipFile(zipDest, unzipDir, options,1085 (err, data) => {1086 var unzipStat = fileio.statSync(unzipDest);1087 var isFile = unzipStat.isFile();1088 expect(isFile).assertTrue(); 1089 var destSize = unzipStat.size;1090 var originSize = fileio.statSync(src).size;1091 var result = (originSize == destSize);1092 expect(result).assertTrue();1093 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1094 done(); 1095 })1096 }); 1097 } catch(err) {1098 console.error('FWK_ZipFile_0500 err:' + err);1099 done();1100 }1101 console.log("==================FWK_ZipFile_2700 end=================="); 1102})1103/*1104* @tc.number: FWK_ZipFile_28001105* @tc.name: zipFile 1106* @tc.desc: memlevel.MEM_LEVEL_DEFAULT_MEMLEVEL1107*/1108it('FWK_ZipFile_2800', 0, async function (done) {1109 console.log("==================FWK_ZipFile_2800 start==================");1110 var src = "/data/test/ceshi.txt";1111 var zipDest = "/data/testA/ceshi.zip";1112 var unzipDir = "/data/testA/";1113 var unzipDest = "/data/testA/ceshi.txt";1114 1115 try{1116 var options = {};1117 options.memlevel = zlib.MemLevel.MEM_LEVEL_DEFAULT_MEMLEVEL,1118 await zlib.zipFile(src, zipDest, options,1119 (err, data) => {1120 var zipStat = fileio.statSync(zipDest);1121 var isFile = zipStat.isFile();1122 expect(isFile).assertTrue();1123 var srcSize = fileio.statSync(src).size;1124 var destSize = zipStat.size;1125 expect(srcSize>destSize).assertTrue();1126 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1127 1128 zlib.unzipFile(zipDest, unzipDir, options,1129 (err, data) => {1130 var unzipStat = fileio.statSync(unzipDest);1131 var isFile = unzipStat.isFile();1132 expect(isFile).assertTrue(); 1133 var destSize = unzipStat.size;1134 var originSize = fileio.statSync(src).size;1135 var result = (originSize == destSize);1136 expect(result).assertTrue();1137 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1138 done(); 1139 })1140 }); 1141 } catch(err) {1142 console.error('FWK_ZipFile_0500 err:' + err);1143 done();1144 }1145 console.log("==================FWK_ZipFile_2800 end==================");1146})1147/*1148* @tc.number: FWK_ZipFile_29001149* @tc.name: zipFile 1150* @tc.desc: strategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY1151*/1152it('FWK_ZipFile_2900', 0, async function (done) {1153 console.log("==================FWK_ZipFile_2900 start==================");1154 var src = "/data/test/ceshi.txt";1155 var zipDest = "/data/testA/ceshi.zip";1156 var unzipDir = "/data/testA/";1157 var unzipDest = "/data/testA/ceshi.txt";1158 1159 try{1160 var options = {};1161 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY,1162 await zlib.zipFile(src, zipDest, options,1163 (err, data) => {1164 var zipStat = fileio.statSync(zipDest);1165 var isFile = zipStat.isFile();1166 expect(isFile).assertTrue();1167 var srcSize = fileio.statSync(src).size;1168 var destSize = zipStat.size;1169 expect(srcSize>destSize).assertTrue();1170 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1171 1172 zlib.unzipFile(zipDest, unzipDir, options,1173 (err, data) => {1174 var unzipStat = fileio.statSync(unzipDest);1175 var isFile = unzipStat.isFile();1176 expect(isFile).assertTrue(); 1177 var destSize = unzipStat.size;1178 var originSize = fileio.statSync(src).size;1179 var result = (originSize == destSize);1180 expect(result).assertTrue();1181 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1182 done(); 1183 })1184 }); 1185 } catch(err) {1186 console.error('FWK_ZipFile_0500 err:' + err);1187 done();1188 }1189 console.log("==================FWK_ZipFile_2900 end==================");1190})1191/*1192* @tc.number: FWK_ZipFile_30001193* @tc.name: zipFile 1194* @tc.desc: strategy.COMPRESS_STRATEGY_FILTERED1195*/1196it('FWK_ZipFile_3000', 0, async function (done) {1197 console.log("==================FWK_ZipFile_3000 start==================");1198 var src = "/data/test/ceshi.txt";1199 var zipDest = "/data/testA/ceshi.zip";1200 var unzipDir = "/data/testA/";1201 var unzipDest = "/data/testA/ceshi.txt";1202 try{1203 var options = {};1204 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_FILTERED,1205 await zlib.zipFile(src, zipDest, options,1206 (err, data) => {1207 var zipStat = fileio.statSync(zipDest);1208 var isFile = zipStat.isFile();1209 expect(isFile).assertTrue();1210 var srcSize = fileio.statSync(src).size;1211 var destSize = zipStat.size;1212 expect(srcSize>destSize).assertTrue();1213 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1214 1215 zlib.unzipFile(zipDest, unzipDir, options,1216 (err, data) => {1217 var unzipStat = fileio.statSync(unzipDest);1218 var isFile = unzipStat.isFile();1219 expect(isFile).assertTrue(); 1220 var destSize = unzipStat.size;1221 var originSize = fileio.statSync(src).size;1222 var result = (originSize == destSize);1223 expect(result).assertTrue();1224 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1225 done(); 1226 })1227 }); 1228 } catch(err) {1229 console.error('FWK_ZipFile_0500 err:' + err);1230 done();1231 }1232 console.log("==================FWK_ZipFile_3000 end=================="); 1233})1234/*1235* @tc.number: FWK_ZipFile_31001236* @tc.name: zipFile 1237* @tc.desc: strategy.COMPRESS_STRATEGY_HUFFMAN_ONLY1238*/1239it('FWK_ZipFile_3100', 0, async function (done) {1240 console.log("==================FWK_ZipFile_3100 start==================");1241 var src = "/data/test/ceshi.txt";1242 var zipDest = "/data/testA/ceshi.zip";1243 var unzipDir = "/data/testA/";1244 var unzipDest = "/data/testA/ceshi.txt";1245 1246 try{1247 var options = {};1248 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_HUFFMAN_ONLY,1249 await zlib.zipFile(src, zipDest, options,1250 (err, data) => {1251 var zipStat = fileio.statSync(zipDest);1252 var isFile = zipStat.isFile();1253 expect(isFile).assertTrue();1254 var srcSize = fileio.statSync(src).size;1255 var destSize = zipStat.size;1256 expect(srcSize>destSize).assertTrue();1257 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1258 1259 zlib.unzipFile(zipDest, unzipDir, options,1260 (err, data) => {1261 var unzipStat = fileio.statSync(unzipDest);1262 var isFile = unzipStat.isFile();1263 expect(isFile).assertTrue(); 1264 var destSize = unzipStat.size;1265 var originSize = fileio.statSync(src).size;1266 var result = (originSize == destSize);1267 expect(result).assertTrue();1268 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1269 done(); 1270 })1271 }); 1272 } catch(err) {1273 console.error('FWK_ZipFile_0500 err:' + err);1274 done();1275 }1276 console.log("==================FWK_ZipFile_3100 end=================="); 1277})1278/*1279* @tc.number: FWK_ZipFile_32001280* @tc.name: zipFile 1281* @tc.desc: strategy.COMPRESS_STRATEGY_RLE1282*/1283it('FWK_ZipFile_3200', 0, async function (done) {1284 console.log("==================FWK_ZipFile_3200 start==================");1285 var src = "/data/test/ceshi.txt";1286 var zipDest = "/data/testA/ceshi.zip";1287 var unzipDir = "/data/testA/";1288 var unzipDest = "/data/testA/ceshi.txt";1289 1290 try{1291 var options = {};1292 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_RLE,1293 await zlib.zipFile(src, zipDest, options,1294 (err, data) => {1295 var zipStat = fileio.statSync(zipDest);1296 var isFile = zipStat.isFile();1297 expect(isFile).assertTrue();1298 var srcSize = fileio.statSync(src).size;1299 var destSize = zipStat.size;1300 expect(srcSize>destSize).assertTrue();1301 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1302 1303 zlib.unzipFile(zipDest, unzipDir, options,1304 (err, data) => {1305 var unzipStat = fileio.statSync(unzipDest);1306 var isFile = unzipStat.isFile();1307 expect(isFile).assertTrue(); 1308 var destSize = unzipStat.size;1309 var originSize = fileio.statSync(src).size;1310 var result = (originSize == destSize);1311 expect(result).assertTrue();1312 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1313 done(); 1314 })1315 }); 1316 } catch(err) {1317 console.error('FWK_ZipFile_0500 err:' + err);1318 done();1319 }1320 console.log("==================FWK_ZipFile_3200 end==================");1321})1322/*1323* @tc.number: FWK_ZipFile_33001324* @tc.name: zipFile 1325* @tc.desc: strategy.COMPRESS_STRATEGY_HUFFMAN_ONLY1326*/1327it('FWK_ZipFile_3300', 0, async function (done) {1328 console.log("==================FWK_ZipFile_3300 start==================");1329 var src = "/data/test/ceshi.txt";1330 var zipDest = "/data/testA/ceshi.zip";1331 var unzipDir = "/data/testA/";1332 var unzipDest = "/data/testA/ceshi.txt";1333 1334 try{1335 var options = {};1336 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_FILTERED,1337 await zlib.zipFile(src, zipDest, options,1338 (err, data) => {1339 var zipStat = fileio.statSync(zipDest);1340 var isFile = zipStat.isFile();1341 expect(isFile).assertTrue();1342 var srcSize = fileio.statSync(src).size;1343 var destSize = zipStat.size;1344 expect(srcSize>destSize).assertTrue();1345 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1346 1347 zlib.unzipFile(zipDest, unzipDir, options,1348 (err, data) => {1349 var unzipStat = fileio.statSync(unzipDest);1350 var isFile = unzipStat.isFile();1351 expect(isFile).assertTrue(); 1352 var destSize = unzipStat.size;1353 var originSize = fileio.statSync(src).size;1354 var result = (originSize == destSize);1355 expect(result).assertTrue();1356 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1357 done(); 1358 })1359 }); 1360 } catch(err) {1361 console.error('FWK_ZipFile_0500 err:' + err);1362 done();1363 }1364 console.log("==================FWK_ZipFile_3300 end=================="); 1365})1366/*1367* @tc.number: FWK_zipFile_34001368* @tc.name: zipFile1369* @tc.desc: inFile doesn't exist1370*/1371it('FWK_zipFile_3400', 0, async function (done) {1372 console.log("==================FWK_zipFile_3400 start==================");1373 var src = "/data/noExist.txt";1374 var dest = "/data/test/";1375 var options = {} 1376 zlib.zipFile(src, dest, options).then((data) => {1377 console.log("zipFilePromise_3400 data: " + data);1378 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR);1379 done();1380 }).catch((err)=>{1381 console.log("zipFilePromise_3400 err: " + err);1382 done();1383 });1384 console.log("==================zipFilePromise_3400 end ==================");1385})1386/*1387* @tc.number: FWK_zipFile_35001388* @tc.name: zipFile1389* @tc.desc: inFile is a directory that doesn't exist1390*/1391it('FWK_zipFile_3500', 0, async function (done) {1392 console.log("==================FWK_zipFile_3500 start==================");1393 var src = "/data/teste/fefsef.txt";1394 var dest = "/data/testA/sfefsfe.zip";1395 var options = {} 1396 zlib.zipFile(src, dest, options).then((data) => {1397 console.log("zipFilePromise_3500 data: " + data);1398 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR);1399 done();1400 }).catch((err)=>{1401 console.log("zipFilePromise_3500 err: " + err);1402 done();1403 });1404 console.log("==================zipFilePromise_3500 end ==================");1405})1406/*1407* @tc.number: FWK_zipFile_36001408* @tc.name: zipFile1409* @tc.desc:output file not specified1410*/1411it('FWK_zipFile_3600', 0, async function (done) {1412 console.log("==================FWK_zipFile_3600 start==================");1413 var src = "/data/test/ceshi.txt";1414 var dest = "";1415 var options = {}1416 zlib.zipFile(src, dest, options).then((data) => {1417 console.log("zipFilePromise_3600 data: " + data);1418 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR);1419 done();1420 }).catch((err)=>{1421 console.log("zipFilePromise_3600 err: " + err);1422 done();1423 });1424 console.log("==================zipFilePromise_3600 end ==================")1425})1426/*1427* @tc.number: FWK_zipFile_37001428* @tc.name: zipFile1429* @tc.desc:output file not specified1430*/1431it('FWK_ZipFile_3700', 0, async function (done) {1432 console.log("==================zipFilePromise_3700 start==================");1433 var src = "/data/test/ceshi.txt";1434 var dest = "/data/testB/ceshi.txt.zip";1435 var options = {} 1436 zlib.zipFile(src, dest, options).then((data) => {1437 console.log("zipFilePromise_3700 data: " + data);1438 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR);1439 done();1440 }).catch((err)=>{1441 console.log("zipFilePromise_3700 err: " + err);1442 done();1443 });1444 console.log("==================zipFilePromise_3700 end ==================");1445})1446/*1447* @tc.number: FWK_ZipFile_38001448* @tc.name: zipFile 1449* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH1450*/1451it('FWK_ZipFile_3800', 0, async function (done) {1452 console.log("==================FWK_ZipFile_3800 start==================");1453 var src = "/data/test/ceshi.txt";1454 var zipDest = "/data/testb/ceshi.zip";1455 var unzipDir = "/data/testb/";1456 var unzipDest = "/data/testb/ceshi.txt";1457 1458 try {1459 var options = {};1460 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH;1461 zlib.zipFile(src, unzipDir, options,).then((data) => {1462 var zipStat = fileio.statSync(zipDest);1463 var isFile = zipStat.isFile();1464 expect(isFile).assertTrue();1465 var srcSize = fileio.statSync(src).size;1466 var destSize = zipStat.size;1467 expect(srcSize>destSize).assertTrue();1468 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1469 zlib.zipFile(zipDest, unzipDir, options,).then((data) => {1470 var unzipStat = fileio.statSync(unzipDest);1471 var isFile = unzipStat.isFile();1472 expect(isFile).assertTrue(); 1473 var destSize = unzipStat.size;1474 var originSize = fileio.statSync(src).size;1475 var result = (originSize == destSize);1476 expect(result).assertTrue();1477 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1478 done(); 1479 }).catch((err)=>{1480 console.log("FWK_ZipFile_3800 .catch((err)=>" + err);1481 done(); 1482 })1483 }).catch((err)=>{1484 console.log("FWK_ZipFile_3800 .catch((err)=>" + err);1485 done();1486 }); 1487 } catch(err) {1488 console.error('FWK_ZipFile_3800 err:' + err);1489 done();1490 }1491 console.log("==================FWK_ZipFile_3800 end==================");1492})1493/*1494* @tc.number: FWK_ZipFile_39001495* @tc.name: zipFile 1496* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH1497*/1498it('FWK_ZipFile_3900', 0, async function (done) {1499 console.log("==================FWK_ZipFile_3900 start==================");1500 var src = "/data/test/ceshi.txt";1501 var zipDest = "/data/testb/ceshi.zip";1502 var unzipDir = "/data/testb/";1503 var unzipDest = "/data/testb/ceshi.txt";1504 1505 try {1506 var options = {};1507 options.flush = zlib.FlushType.FLUSH_TYPE_PARTIAL_FLUSH,1508 zlib.zipFile(src, unzipDir, options,).then((data) => {1509 var zipStat = fileio.statSync(zipDest);1510 var isFile = zipStat.isFile();1511 expect(isFile).assertTrue();1512 var srcSize = fileio.statSync(src).size;1513 var destSize = zipStat.size;1514 expect(srcSize>destSize).assertTrue();1515 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1516 zlib.zipFile(zipDest, unzipDir, options,).then((data) => {1517 var unzipStat = fileio.statSync(unzipDest);1518 var isFile = unzipStat.isFile();1519 expect(isFile).assertTrue(); 1520 var destSize = unzipStat.size;1521 var originSize = fileio.statSync(src).size;1522 var result = (originSize == destSize);1523 expect(result).assertTrue();1524 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1525 done(); 1526 }).catch((err)=>{1527 console.log("FWK_ZipFile_3900 .catch((err)=>" + err);1528 done(); 1529 })1530 1531 }).catch((err)=>{1532 console.log("FWK_ZipFile_3900 .catch((err)=>" + err);1533 done();1534 1535 }); 1536} catch(err) {1537 console.error('FWK_ZipFile_3900 err:' + err);1538 done();1539 }1540 console.log("==================FWK_ZipFile_3900 end==================");1541})1542/*1543* @tc.number: FWK_ZipFile_40001544* @tc.name: zipFile 1545* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH1546*/1547it('FWK_ZipFile_4000', 0, async function (done) {1548 console.log("==================FWK_ZipFile_4000 start==================");1549 var src = "/data/test/";1550 var dest = "/data/testA/ceshi.txt.zip";1551 1552 try {1553 var options = {};1554 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH;1555 await zlib.zipFile(src, dest, options,1556 (err, data) => {1557 var smallStat = fileio.statSync(dest);1558 var isFile = smallStat.isFile();1559 expect(isFile).assertTrue();1560 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1561 done();1562 });1563 } catch(err) {1564 console.error('FWK_ZipFile_4000 err:' + err);1565 done();1566 }1567 console.log("==================FWK_ZipFile_4000 end==================");1568})1569/*1570* @tc.number: FWK_ZipFile_41001571* @tc.name: zipFile 1572* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH1573*/1574it('FWK_ZipFile_4100', 0, async function (done) {1575 console.log("==================FWK_ZipFile_4100 start==================");1576 var src = "/data/test/";1577 var dest = "/data/testA/ceshi.txt.zip";1578 1579 try {1580 var options = {};1581 options.flush = zlib.FlushType.FLUSH_TYPE_PARTIAL_FLUSH,1582 await zlib.zipFile(src, dest, options,).then((data) => {1583 var smallStat = fileio.statSync(dest);1584 var isFile = smallStat.isFile();1585 expect(isFile).assertTrue();1586 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1587 done();1588 }).catch((err)=>{1589 console.log("FWK_ZipFile_4100 .catch((err)=>" + err);1590 done();1591 });1592 } catch(err) {1593 console.error('FWK_ZipFile_4100 err:' + err);1594 done();1595 }1596 console.log("==================FWK_ZipFile_4100 end==================");1597})1598/*1599* @tc.number: FWK_ZipFile_42001600* @tc.name: unzipFile 1601* @tc.desc: unzipFile1602*/1603it('FWK_ZipFile_4200', 0, async function (done) {1604 console.log("==================FWK_UnzipFile_0100 start==================");1605 var src = "/data/noExist.txt";1606 var dest = "/data/test/";1607 var options = {}1608 zlib.unzipFile(src, dest, options,1609 (err, data) => {1610 console.log("FWK_ZipFile_4200 data: " + data);1611 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR);1612 done();1613 });1614})1615/*1616* @tc.number: FWK_ZipFile_43001617* @tc.name: unzipFile 1618* @tc.desc: unzipFile1619*/1620it('FWK_ZipFile_4300', 0, async function (done) {1621 console.log("==================FWK_ZipFile_4300 start==================");1622 var src = "/data/test/";1623 var dest = "/data/testA/ceshi.txt.zip";1624 var options = {}1625 zlib.unzipFile(src, dest, options,1626 (err, data) => {1627 console.log("FWK_ZipFile_4300 data: " + data);1628 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO);1629 done();1630 });1631})1632/*1633* @tc.number: FWK_ZipFile_44001634* @tc.name: unzipFile 1635* @tc.desc: unzipFile1636*/1637it('FWK_ZipFile_4400', 0, async function (done) {1638 console.log("==================FWK_ZipFile_4300 start==================");1639 var src = "/data/test/cdshitwo.txt";1640 var dest = "/data/testA/ceshi.txt.zip";1641 var options = {}1642 zlib.unzipFile(src, dest, options,1643 (err, data) => {1644 console.log("FWK_ZipFile_4400 data: " + data);1645 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR);1646 done();1647 });1648})1649/*1650* @tc.number: FWK_ZipFile_45001651* @tc.name: unzipFile 1652* @tc.desc: unzipFile1653*/1654it('FWK_ZipFile_4500', 0, async function (done) {1655 console.log("==================FWK_ZipFile_4500 start==================");1656 var src = "/data/testA/ceshi.txt.zip";1657 var dest = "";1658 var options = {}1659 zlib.unzipFile(src, dest, options,1660 (err, data) => {1661 console.log("FWK_ZipFile_4500 data: " + data);1662 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO);1663 done();1664 });1665})1666/*1667* @tc.number: FWK_ZipFile_46001668* @tc.name: zipFile 1669* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH1670*/1671it('FWK_ZipFile_4600', 0, async function (done) {1672 console.log("==================FWK_ZipFile_4600 start==================");1673 var src = "/data/test/ceshitwo.zip";1674 var dest = "/data/testb";1675 var origin = "/data/test/ceshitwo.txt";1676 var destFile = "/data/testb/ceshitwo.txt";1677 1678 try {1679 var options = {};1680 options.flushFlush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH,1681 await zlib.unzipFile(src, dest, options,1682 (err, data) => {1683 var smallStat = fileio.statSync(destFile);1684 var isFile = smallStat.isFile();1685 expect(isFile).assertTrue();1686 var destSize = smallStat.size;1687 var originStat = fileio.statSync(origin);1688 var originSize = originStat.size; 1689 console.log("FWK_ZipFile_4600 destSize=" + destSize);1690 console.log("FWK_ZipFile_4600 data=" + data);1691 var result = (originSize == destSize);1692 expect(result).assertTrue();1693 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1694 done();1695 });1696 } catch(err) { 1697 console.error('FWK_ZipFilFWK_ZipFile_4600e_4200 err:' + err);1698 done();1699 }1700 console.log("==================FWK_ZipFile_4600 end==================");1701})1702/*1703* @tc.number: FWK_ZipFile_47001704* @tc.name: zipFile1705* @tc.desc: inFile doesn't exist1706*/1707it('FWK_ZipFile_4700', 0, async function (done) {1708 console.log("==================FWK_UnzipFile_1200 start==================");1709 var src = "/data/noExist.txt";1710 var dest = "/data/test/";1711 var options = {} 1712 zlib.unzipFile(src, dest, options).then((data) => {1713 console.log("FWK_ZipFile_4700 data: " + data);1714 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR);1715 done();1716 }).catch((err)=>{1717 console.log("FWK_ZipFile_4700 err: " + err);1718 done();1719 });1720 console.log("==================FWK_ZipFile_4700 end ==================");1721})1722/*1723* @tc.number: FWK_ZipFile_48001724* @tc.name: zipFile1725* @tc.desc: inFile is a directory that doesn't exist1726*/1727it('FWK_ZipFile_4800', 0, async function (done) {1728 console.log("==================FWK_ZipFile_4800 start==================");1729 var src = "/data/test";1730 var dest = "/data/testA/ceshi.txt";1731 var options = {} 1732 zlib.unzipFile(src, dest, options).then((data) => {1733 console.log("FWK_ZipFile_4800 data: " + data);1734 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO);1735 done();1736 }).catch((err)=>{1737 console.log("FWK_ZipFile_4800 err: " + err);1738 done();1739 });1740 console.log("==================FWK_ZipFile_4800 end ==================");1741})1742/*1743* @tc.number: FWK_ZipFile_49001744* @tc.name: zipFile1745* @tc.desc:output file not specified1746*/1747it('FWK_ZipFile_4900', 0, async function (done) {1748 console.log("==================FWK_ZipFile_4900 start==================");1749 var src = "/data/test/ceshi.txt";1750 var dest = "/data/testc/ceshi.txt.zip";1751 var options = {} 1752 zlib.unzipFile(src, dest, options).then((data) => {1753 console.log("FWK_ZipFile_4900 data: " + data);1754 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO);1755 done();1756 }).catch((err)=>{1757 console.log("FWK_ZipFile_4900 err: " + err);1758 done();1759 });1760 console.log("==================FWK_ZipFile_4900 end ==================");1761})1762/*1763* @tc.number: FWK_ZipFile_50001764* @tc.name: unzipFile 1765* @tc.desc: unzipFile1766*/1767it('FWK_ZipFile_5000', 0, async function (done) {1768 console.log("==================FWK_ZipFile_5000 start==================");1769 var src = "/data/test/cdshitwo.txt";1770 var dest = "/data/testA/ceshi.txt.zip";1771 var options = {}1772 zlib.unzipFile(src, dest, options,).then((data)=>{1773 console.log("FWK_ZipFile_5000 data: " + data);1774 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR);1775 done();1776 }).catch((err)=>{1777 console.log("FWK_ZipFile_5000 err: " + err);1778 done();1779 });1780})1781/*1782* @tc.number: FWK_ZipFile_51001783* @tc.name: zipFile 1784* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH1785*/1786it('FWK_ZipFile_5100', 0, async function (done) {1787 console.log("==================FWK_ZipFile_5100 start==================");1788 var src = "/data/test/ceshitwo.zip";1789 var dest = "/data/testb";1790 var origin = "/data/test/ceshitwo.txt";1791 var destFile = "/data/testb/ceshitwo.txt";1792 1793 try {1794 var options = {};1795 options.flushFlush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH,1796 zlib.unzipFile(src, dest, options).then((data)=>{1797 var smallStat = fileio.statSync(destFile);1798 var isFile = smallStat.isFile();1799 expect(isFile).assertTrue();1800 var destSize = smallStat.size;1801 var originStat = fileio.statSync(origin);1802 var originSize = originStat.size; 1803 console.log("FWK_ZipFile_5100 destSize=" + destSize);1804 console.log("FWK_ZipFile_5100 data=" + data);1805 var result = (originSize == destSize);1806 expect(result).assertTrue();1807 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1808 done();1809 }).catch((err)=>{1810 expect(fail).assertTrue();1811 console.log("FWK_ZipFile_5100 .catch((err)=>" + err);1812 done();...
cmd-parameter-generate.js
Source:cmd-parameter-generate.js
...51 let setup = testsGlobalHelper.generateProjectAndSetup('lib_php', null, []);52 53 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");5455 expect(fm.isFile('./extras/help/debug.md')).toBe(true);56 expect(fm.isFile('./extras/help/publish-release.md')).toBe(true);57 expect(fm.isFile('./extras/help/tests.md')).toBe(true);58 expect(fm.isFile('./extras/todo/features.todo')).toBe(true);59 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);60 expect(fm.isFile('.gitignore')).toBe(true);61 expect(fm.isFile('.gitattributes')).toBe(true);62 expect(fm.isDirectory('./src/main/php')).toBe(true);63 expect(fm.isDirectory('./src/test/php')).toBe(true);6465 expect(setup.metadata.builderVersion).toBe(setupModule.getBuilderVersion());66 expect(setup.validate.filesContent.copyrightHeaders.length).toBe(0);67 expect(setup.build.hasOwnProperty('printTodoFiles')).toBe(true);68 expect(setup.hasOwnProperty('wildCards')).toBe(false);69 expect(setup.build.hasOwnProperty('site_php')).toBe(false);70 expect(setup.build.hasOwnProperty('lib_ts')).toBe(false);71 expect(setup.hasOwnProperty("sync")).toBe(false);72 expect(setup.test.enabledTests.length).toBe(1);73 expect(setup.test.enabledTests[0].type).toBe("phpUnit");74 });757677 it('should generate lib_js project structure', function(){7879 let setup = testsGlobalHelper.generateProjectAndSetup('lib_js', null, []);80 81 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");8283 expect(fm.isFile('./extras/help/debug.md')).toBe(true);84 expect(fm.isFile('./extras/help/publish-release.md')).toBe(true);85 expect(fm.isFile('./extras/help/tests.md')).toBe(true);86 expect(fm.isFile('./extras/todo/features.todo')).toBe(true);87 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);88 expect(fm.isFile('.gitignore')).toBe(true);89 expect(fm.isFile('.gitattributes')).toBe(true);90 expect(fm.isDirectory('./src/main/js')).toBe(true);91 expect(fm.isDirectory('./src/main/resources')).toBe(true);92 expect(fm.isDirectory('./src/test/js')).toBe(true);93 expect(fm.isFile('./src/main/js/utils/MyStaticClass.js')).toBe(true);94 expect(fm.isFile('./src/main/js/model/MySingletonClass.js')).toBe(true);9596 expect(setup.metadata.builderVersion).toBe(setupModule.getBuilderVersion());97 expect(setup.hasOwnProperty('wildCards')).toBe(false);98 expect(setup.validate.filesContent.copyrightHeaders.length).toBe(0);99 expect(setup.validate.hasOwnProperty('angularApp')).toBe(false);100 expect(setup.build.hasOwnProperty('printTodoFiles')).toBe(true);101 expect(setup.build.hasOwnProperty('site_php')).toBe(false);102 expect(setup.build.hasOwnProperty('lib_php')).toBe(false);103 expect(setup.build.hasOwnProperty('lib_ts')).toBe(false);104 expect(setup.build.hasOwnProperty('lib_js')).toBe(true);105 expect(setup.hasOwnProperty("sync")).toBe(false);106 expect(setup.test.enabledTests.length).toBe(1);107 expect(setup.test.enabledTests[0].type).toBe("jasmine");108 });109110111 it('should generate lib_ts project structure', function(){112113 let setup = testsGlobalHelper.generateProjectAndSetup('lib_ts', null, []);114 115 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");116117 expect(fm.isFile('./extras/help/debug.md')).toBe(true);118 expect(fm.isFile('./extras/help/publish-release.md')).toBe(true);119 expect(fm.isFile('./extras/help/tests.md')).toBe(true);120 expect(fm.isFile('./extras/todo/features.todo')).toBe(true);121 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);122 expect(fm.isDirectory('./src/main/ts')).toBe(true);123 expect(fm.isFile('.gitignore')).toBe(true);124 expect(fm.isFile('.gitattributes')).toBe(true);125126 expect(setup.hasOwnProperty('wildCards')).toBe(false);127 expect(setup.metadata.builderVersion).toBe(setupModule.getBuilderVersion());128 expect(setup.validate.filesContent.copyrightHeaders.length).toBe(0);129 expect(setup.build.hasOwnProperty('printTodoFiles')).toBe(true);130 expect(setup.build.hasOwnProperty('site_php')).toBe(false);131 expect(setup.build.hasOwnProperty('lib_php')).toBe(false);132 expect(setup.hasOwnProperty("sync")).toBe(false);133 expect(setup.test.enabledTests.length).toBe(1);134 expect(setup.test.enabledTests[0].type).toBe("jasmine");135 });136137138 it('should generate site_php project structure', function(){139140 let setup = testsGlobalHelper.generateProjectAndSetup('site_php', null, []);141 142 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");143144 expect(fm.isFile('./turbosite.json')).toBe(true);145 expect(fm.isFile('./turbosite.release.json')).toBe(true);146 expect(fm.isFile('./extras/help/debug.md')).toBe(true);147 expect(fm.isFile('./extras/help/publish-release.md')).toBe(true);148 expect(fm.isFile('./extras/help/tests.md')).toBe(true);149 expect(fm.isFile('./extras/help/upgrade-dependencies.md')).toBe(true);150 expect(fm.readFile('./extras/help/upgrade-dependencies.md')).toContain('Update the library versions at the index.php file');151 expect(fm.isFile('./extras/todo/features.todo')).toBe(true);152 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);153 expect(fm.isDirectory('./src/main/resources')).toBe(true);154 expect(fm.isFile('.gitignore')).toBe(true);155 expect(fm.isFile('.gitattributes')).toBe(true);156157 expect(setup.hasOwnProperty('wildCards')).toBe(false);158 expect(setup.metadata.builderVersion).toBe(setupModule.getBuilderVersion());159 expect(setup.validate.filesContent.copyrightHeaders.length).toBe(0);160 expect(setup.build.hasOwnProperty('printTodoFiles')).toBe(true);161 expect(setup.build.hasOwnProperty('site_php')).toBe(true);162 expect(setup.build.hasOwnProperty('server_php')).toBe(false);163 expect(setup.build.hasOwnProperty('lib_php')).toBe(false);164 expect(setup.build.hasOwnProperty('lib_ts')).toBe(false);165 expect(setup.sync.type).toBe("fileSystem");166 expect(setup.test.enabledTests.length).toBe(1);167 expect(setup.test.enabledTests[0].type).toBe("jasmine");168 169 expect(fm.readFile('./src/main/error-404.php')).toContain('Redirecting to');170 });171 172 173 it('should generate server_php project structure', function(){174175 let setup = testsGlobalHelper.generateProjectAndSetup('server_php', null, []);176 177 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");178179 expect(fm.isFile('./turbosite.json')).toBe(true);180 expect(fm.isFile('./turbosite.release.json')).toBe(true);181 expect(fm.isFile('./extras/help/debug.md')).toBe(true);182 expect(fm.isFile('./extras/help/publish-release.md')).toBe(true);183 expect(fm.isFile('./extras/help/tests.md')).toBe(true);184 expect(fm.isFile('./extras/todo/features.todo')).toBe(true);185 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);186 expect(fm.isDirectory('./src/main/resources')).toBe(true);187 expect(fm.isDirectory('./src/main/resources/fonts')).toBe(false);188 expect(fm.isDirectory('./src/main/view')).toBe(false);189 expect(fm.isFile('.gitignore')).toBe(true);190 expect(fm.isFile('.gitattributes')).toBe(true);191192 expect(setup.hasOwnProperty('wildCards')).toBe(false);193 expect(setup.metadata.builderVersion).toBe(setupModule.getBuilderVersion());194 expect(setup.validate.filesContent.copyrightHeaders.length).toBe(0);195 expect(setup.build.hasOwnProperty('printTodoFiles')).toBe(true);196 expect(setup.build.hasOwnProperty('server_php')).toBe(true);197 expect(setup.build.hasOwnProperty('site_php')).toBe(false);198 expect(setup.build.hasOwnProperty('lib_php')).toBe(false);199 expect(setup.build.hasOwnProperty('lib_ts')).toBe(false);200 expect(setup.sync.type).toBe("fileSystem");201 expect(setup.test.enabledTests.length).toBe(1);202 expect(setup.test.enabledTests[0].type).toBe("phpUnit");203 204 expect(fm.readFile('./src/main/error-404.php')).not.toContain('Redirecting to');205 });206207208 it('should fail when generate is called twice on the same folder', function(){209210 testsGlobalHelper.generateProjectAndSetup('lib_php', null, []);211 212 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");213214 expect(testsGlobalHelper.execTbCmd('--generate lib_php')).toContain('File ' + global.fileNames.setup + ' already exists');215 });216217218 it('should fail when called on a non empty folder', function(){219220 expect(fm.saveFile('./someFile.txt', 'file contents')).toBe(true);221222 expect(testsGlobalHelper.execTbCmd('-g lib_php')).toContain('Current folder is not empty! :');223 expect(testsGlobalHelper.execTbCmd('--generate lib_php')).toContain('Current folder is not empty! :');224 });225226227 it('should fail when generated setup builderVersion value is modified with invalid value', function(){228229 let setup = testsGlobalHelper.generateProjectAndSetup('lib_ts', null, []);230 231 setup.metadata.builderVersion = '';232233 expect(testsGlobalHelper.saveToSetupFile(setup)).toBe(true);234235 expect(testsGlobalHelper.execTbCmd('-l')).toContain("metadata.builderVersion not specified on");236237 setup.metadata.builderVersion = setupModule.getBuilderVersion() + '.9';238239 expect(testsGlobalHelper.saveToSetupFile(setup)).toBe(true);240241 expect(testsGlobalHelper.execTbCmd('-l')).toContain("Warning: Current turbobuilder version");242 });243 244 245 it('should generate app_angular project structure', function() {246247 let generateResult = testsGlobalHelper.execTbCmd('--generate app_angular');248 expect(generateResult).toContain("NOT FINISHED YET! - Remember to follow the instructions on TODO.md");249 expect(generateResult).toContain("Generated project structure ok");250 251 expect(fm.isFile('./TODO.md')).toBe(true);252 expect(fm.isFile('./README.md')).toBe(true);253 expect(fm.isFile('./tslint.json')).toBe(true);254 expect(fm.isFile('./turbobuilder.json')).toBe(true);255 expect(fm.isFile('./src/htaccess.txt')).toBe(true);256 expect(fm.isFile('./src/assets/favicons/196x196.png')).toBe(true);257 expect(fm.isFile('./src/assets/favicons/readme.txt')).toBe(true);258 expect(fm.isFile('./extras/help/debug.md')).toBe(true);259 expect(fm.isFile('./extras/help/publish-release.md')).toBe(true);260 expect(fm.isFile('./extras/help/tests.md')).toBe(true);261 expect(fm.isFile('./extras/todo/features.todo')).toBe(true);262 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);263 expect(fm.isFile('.gitignore')).toBe(true);264 expect(fm.isFile('.gitattributes')).toBe(true);265266 expect(fm.readFile('./tslint.json')).toContain('"extends": "./tslint-angular.json"');267268 let setup = tsm.getSetup('turbobuilder');269 270 expect(setup.metadata.builderVersion).toBe(setupModule.getBuilderVersion());271 expect(setup.validate.filesContent.copyrightHeaders.length).toBe(0);272 expect(setup.build.hasOwnProperty('app_angular')).toBe(true);273 expect(setup.build.hasOwnProperty('optimizePictures')).toBe(false);274 expect(setup.build.hasOwnProperty('generateCodeDocumentation')).toBe(false);275 expect(setup.test.enabledTests.length).toBe(0);276 });277 278 279 it('should generate app_node_cmd project structure', function(){280281 let setup = testsGlobalHelper.generateProjectAndSetup('app_node_cmd', null, []);282 283 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");284285 expect(fm.isFile('./extras/help/debug.md')).toBe(true);286 expect(fm.readFile('./extras/help/debug.md')).toContain('# How to debug a node app with chrome dev tools');287 expect(fm.isFile('./extras/help/publish-release.md')).toBe(true);288 expect(fm.isFile('./extras/help/tests.md')).toBe(true);289 expect(fm.isFile('./extras/todo/features.todo')).toBe(true);290 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);291 expect(fm.isFile('./src/main/js/main.js')).toBe(true);292 expect(fm.isDirectory('./src/main/resources')).toBe(true);293 expect(fm.isDirectory('./src/test/js')).toBe(true);294 expect(fm.isFile('.gitignore')).toBe(true);295 expect(fm.isFile('.gitattributes')).toBe(true);296 297 expect(setup.hasOwnProperty('wildCards')).toBe(false);298 expect(setup.metadata.builderVersion).toBe(setupModule.getBuilderVersion());299 expect(setup.validate.filesContent.hasOwnProperty('copyrightHeaders')).toBe(true);300 expect(setup.validate.hasOwnProperty('styleSheets')).toBe(false);301 expect(setup.build.hasOwnProperty('printTodoFiles')).toBe(true);302 expect(setup.build.hasOwnProperty('site_php')).toBe(false);303 expect(setup.build.hasOwnProperty('lib_php')).toBe(false);304 expect(setup.build.hasOwnProperty('lib_ts')).toBe(false);305 expect(setup.build.hasOwnProperty('lib_js')).toBe(false);306 expect(setup.build.hasOwnProperty("app_node_cmd")).toBe(true);307 expect(ObjectUtils.getKeys(setup.release).length).toBe(0);308 expect(setup.hasOwnProperty('sync')).toBe(false);309 expect(setup.test.enabledTests.length).toBe(1);310 expect(setup.test.enabledTests[0].type).toBe("jasmine");311 });312 313 314 it('should generate lib_angular project structure', function() {315 316 // TODO - lib_angular generation is still not implemented!317 });318 319 320 it('should generate struct_deploy folders structure', function() {321 322 expect(testsGlobalHelper.execTbCmd('-g struct_deploy')).toContain("Generated folders structure ok");323324 expect(fm.isDirectory('./_dev')).toBe(true);325 expect(fm.isDirectory('./_trash')).toBe(true);326 expect(fm.isDirectory('./site')).toBe(true);327 expect(fm.isDirectory('./storage/cache')).toBe(true);328 expect(fm.isDirectory('./storage/custom')).toBe(true);329 expect(fm.isDirectory('./storage/db')).toBe(true);330 expect(fm.isDirectory('./storage/data')).toBe(true);331 expect(fm.isDirectory('./storage/executable')).toBe(true);332 expect(fm.isDirectory('./storage/logs')).toBe(true);333 expect(fm.isDirectory('./storage/tmp')).toBe(true);334 expect(fm.isFile('./storage/README.txt')).toBe(true);335 336 expect(fm.getDirectoryList('./').length).toBe(4);337 expect(fm.getDirectoryList('./storage').length).toBe(8);338 });339 340 341 it('should generate struct_customer folders structure', function() {342 343 expect(testsGlobalHelper.execTbCmd('-g struct_customer')).toContain("Generated folders structure ok");344345 expect(fm.isDirectory('./Documents')).toBe(true);346 expect(fm.isFile('./Documents/Contact.md')).toBe(true);347 expect(fm.isFile('./Documents/Passwords.md')).toBe(true);348 expect(fm.getDirectoryList('./Documents').length).toBe(2);349 350 expect(fm.isDirectory('./Release')).toBe(true);351 expect(fm.isDirectory('./Repo')).toBe(true);352 expect(fm.isDirectory('./Trash')).toBe(true);353 354 expect(fm.getDirectoryList('./').length).toBe(4);355 });356 357 358 it('should generate test_project project structure', function() {359 360 expect(testsGlobalHelper.execTbCmd('-g test_project')).toContain("Generated project structure ok");361362 expect(fm.isFile('./extras/help/debug.md')).toBe(true);363 expect(fm.readFile('./extras/help/debug.md')).toContain('# How to debug tests');364 expect(fm.isFile('./extras/help/publish-release.md')).toBe(false);365 expect(fm.isFile('./extras/help/tests.md')).toBe(true);366 expect(fm.isFile('./extras/todo/features.todo')).toBe(false);367 expect(fm.isFile('./extras/todo/tests.todo')).toBe(true);368 expect(fm.isDirectory('./src/main')).toBe(false);369 expect(fm.isFile('./src/test/js/helpers/TestsGlobalHelper.js')).toBe(true);370 expect(fm.isFile('./src/test/js/spec/test-spec-template.js')).toBe(true);371 expect(fm.isFile('./src/test/js/jasmine.json')).toBe(true);372 expect(fm.isFile('.gitignore')).toBe(true);373 expect(fm.isFile('.gitattributes')).toBe(true);374 expect(fm.isFile('package.json')).toBe(true);375 376 expect(fm.getDirectoryList('./').length).toBe(7);377 });378 379 380 it('should correctly validate project after being created with test_project', function() {381 382 expect(testsGlobalHelper.execTbCmd('-g test_project')).toContain("Generated project structure ok");383 expect(testsGlobalHelper.execTbCmd('-l')).toContain("validate ok");384 });385 386 387 it('should generate a minimal turbobuilder.json file when test_project project is created', function() {388
...
index.test.js
Source:index.test.js
1var resolve = require('../lib/index')2 , should = require('should')3 4function isFile(path) {5 if (path.indexOf('.js') == path.length - 3) return true;6 return false;7}8function isFileFalse(path) {9 return false;10}11 12describe('resolve.sync', function() {13 14 it('should resolve top-level modules relative to baseDir option', function() {15 resolve.sync('bar', { baseDir: '/www/modules', isFile: isFile }).should.equal('/www/modules/bar.js');16 })17 it('should resolve top-level modules relative to baseUrl option', function() {18 resolve.sync('bar', { baseUrl: '/www/modules', isFile: isFile }).should.equal('/www/modules/bar.js');...
test.js
Source:test.js
1let data = {2 categories: [3 {4 key: "agarbattis",5 basePath: "/static/images/categories/agarbattis",6 sub: [7 {8 key: "14-agarbatti.jpg",9 basePath: "/static/images/categories/agarbattis/14-agarbatti.jpg",10 sub: [],11 isFile: true,12 },13 ],14 isFile: false,15 },16 {17 key: "ayurvedicoils",18 basePath: "/static/images/categories/ayurvedicoils",19 sub: [20 {21 key: "ayurfile.js",22 basePath: "/static/images/categories/ayurvedicoils/ayurfile.js",23 sub: [],24 isFile: true,25 },26 ],27 isFile: false,28 },29 {30 key: "beverages",31 basePath: "/static/images/categories/beverages",32 sub: [33 {34 key: "1-kokum.jpg",35 basePath: "/static/images/categories/beverages/1-kokum.jpg",36 sub: [],37 isFile: true,38 },39 ],40 isFile: false,41 },42 {43 key: "cleaningproducts",44 basePath: "/static/images/categories/cleaningproducts",45 sub: [46 {47 key: "8-phenyl.jpg",48 basePath: "/static/images/categories/cleaningproducts/8-phenyl.jpg",49 sub: [],50 isFile: true,51 },52 {53 key: "bleachingpowder",54 basePath:55 "/static/images/categories/cleaningproducts/bleachingpowder",56 sub: [],57 isFile: false,58 },59 {60 key: "detergents",61 basePath: "/static/images/categories/cleaningproducts/detergents",62 sub: [],63 isFile: false,64 },65 {66 key: "dishwash",67 basePath: "/static/images/categories/cleaningproducts/dishwash",68 sub: [69 {70 key: "liquidsoap",71 basePath:72 "/static/images/categories/cleaningproducts/dishwash/liquidsoap",73 sub: [],74 isFile: false,75 },76 {77 key: "powder",78 basePath:79 "/static/images/categories/cleaningproducts/dishwash/powder",80 sub: [],81 isFile: false,82 },83 ],84 isFile: false,85 },86 {87 key: "floorwash",88 basePath: "/static/images/categories/cleaningproducts/floorwash",89 sub: [],90 isFile: false,91 },92 {93 key: "handwash",94 basePath: "/static/images/categories/cleaningproducts/handwash",95 sub: [],96 isFile: false,97 },98 {99 key: "phenyls",100 basePath: "/static/images/categories/cleaningproducts/phenyls",101 sub: [],102 isFile: false,103 },104 {105 key: "vehiclewash",106 basePath: "/static/images/categories/cleaningproducts/vehiclewash",107 sub: [],108 isFile: false,109 },110 ],111 isFile: false,112 },113 {114 key: "garments",115 basePath: "/static/images/categories/garments",116 sub: [117 {118 key: "3-shirts.jpg",119 basePath: "/static/images/categories/garments/3-shirts.jpg",120 sub: [],121 isFile: true,122 },123 {124 key: "4-women.jpg",125 basePath: "/static/images/categories/garments/4-women.jpg",126 sub: [],127 isFile: true,128 },129 {130 key: "6-garments.jpg",131 basePath: "/static/images/categories/garments/6-garments.jpg",132 sub: [],133 isFile: true,134 },135 {136 key: "7-tailoring.jpg",137 basePath: "/static/images/categories/garments/7-tailoring.jpg",138 sub: [],139 isFile: true,140 },141 {142 key: "bermudas",143 basePath: "/static/images/categories/garments/bermudas",144 sub: [],145 isFile: false,146 },147 {148 key: "kurtas",149 basePath: "/static/images/categories/garments/kurtas",150 sub: [],151 isFile: false,152 },153 {154 key: "nighty",155 basePath: "/static/images/categories/garments/nighty",156 sub: [],157 isFile: false,158 },159 {160 key: "overcoat",161 basePath: "/static/images/categories/garments/overcoat",162 sub: [],163 isFile: false,164 },165 {166 key: "pants",167 basePath: "/static/images/categories/garments/pants",168 sub: [],169 isFile: false,170 },171 {172 key: "shirts",173 basePath: "/static/images/categories/garments/shirts",174 sub: [175 {176 key: "1.jpg",177 basePath: "/static/images/categories/garments/shirts/1.jpg",178 sub: [],179 isFile: true,180 },181 ],182 isFile: false,183 },184 ],185 isFile: false,186 },187 {188 key: "millets",189 basePath: "/static/images/categories/millets",190 sub: [],191 isFile: false,192 },193 {194 key: "nutritionpowder",195 basePath: "/static/images/categories/nutritionpowder",196 sub: [197 {198 key: "10-nutritionpowder.jpg",199 basePath:200 "/static/images/categories/nutritionpowder/10-nutritionpowder.jpg",201 sub: [],202 isFile: true,203 },204 ],205 isFile: false,206 },207 {208 key: "oils",209 basePath: "/static/images/categories/oils",210 sub: [211 {212 key: "oils.js",213 basePath: "/static/images/categories/oils/oils.js",214 sub: [],215 isFile: true,216 },217 ],218 isFile: false,219 },220 {221 key: "pickles",222 basePath: "/static/images/categories/pickles",223 sub: [224 {225 key: "5.1-pickle.jpg",226 basePath: "/static/images/categories/pickles/5.1-pickle.jpg",227 sub: [],228 isFile: true,229 },230 ],231 isFile: false,232 },233 {234 key: "readytoeatmixes",235 basePath: "/static/images/categories/readytoeatmixes",236 sub: [237 {238 key: "bisibelebathmix",239 basePath: "/static/images/categories/readytoeatmixes/bisibelebathmix",240 sub: [],241 isFile: false,242 },243 {244 key: "puliyogremix",245 basePath: "/static/images/categories/readytoeatmixes/puliyogremix",246 sub: [],247 isFile: false,248 },249 {250 key: "ravaidlymix",251 basePath: "/static/images/categories/readytoeatmixes/ravaidlymix",252 sub: [],253 isFile: false,254 },255 {256 key: "upmamix",257 basePath: "/static/images/categories/readytoeatmixes/upmamix",258 sub: [],259 isFile: false,260 },261 ],262 isFile: false,263 },264 {265 key: "rexinbags",266 basePath: "/static/images/categories/rexinbags",267 sub: [268 {269 key: "11-rexinbags.jpg",270 basePath: "/static/images/categories/rexinbags/11-rexinbags.jpg",271 sub: [],272 isFile: true,273 },274 {275 key: "collegebags",276 basePath: "/static/images/categories/rexinbags/collegebags",277 sub: [],278 isFile: false,279 },280 {281 key: "executivebags",282 basePath: "/static/images/categories/rexinbags/executivebags",283 sub: [],284 isFile: false,285 },286 {287 key: "handbags",288 basePath: "/static/images/categories/rexinbags/handbags",289 sub: [],290 isFile: false,291 },292 {293 key: "ladiesbags",294 basePath: "/static/images/categories/rexinbags/ladiesbags",295 sub: [],296 isFile: false,297 },298 {299 key: "laptopbags",300 basePath: "/static/images/categories/rexinbags/laptopbags",301 sub: [],302 isFile: false,303 },304 {305 key: "luggagebags",306 basePath: "/static/images/categories/rexinbags/luggagebags",307 sub: [],308 isFile: false,309 },310 {311 key: "pouchbags",312 basePath: "/static/images/categories/rexinbags/pouchbags",313 sub: [],314 isFile: false,315 },316 {317 key: "schoolbags",318 basePath: "/static/images/categories/rexinbags/schoolbags",319 sub: [],320 isFile: false,321 },322 {323 key: "tiffinbags",324 basePath: "/static/images/categories/rexinbags/tiffinbags",325 sub: [],326 isFile: false,327 },328 ],329 isFile: false,330 },331 {332 key: "snacks",333 basePath: "/static/images/categories/snacks",334 sub: [335 {336 key: "1.jpg",337 basePath: "/static/images/categories/snacks/1.jpg",338 sub: [],339 isFile: true,340 },341 {342 key: "2.jpg",343 basePath: "/static/images/categories/snacks/2.jpg",344 sub: [],345 isFile: true,346 },347 ],348 isFile: false,349 },350 {351 key: "spicespowders",352 basePath: "/static/images/categories/spicespowders",353 sub: [354 {355 key: "garammasalapowder",356 basePath: "/static/images/categories/spicespowders/garammasalapowder",357 sub: [],358 isFile: false,359 },360 {361 key: "pulaomasalapowder",362 basePath: "/static/images/categories/spicespowders/pulaomasalapowder",363 sub: [],364 isFile: false,365 },366 {367 key: "rasampowder",368 basePath: "/static/images/categories/spicespowders/rasampowder",369 sub: [],370 isFile: false,371 },372 {373 key: "sambharpowder",374 basePath: "/static/images/categories/spicespowders/sambharpowder",375 sub: [],376 isFile: false,377 },378 ],379 isFile: false,380 },381 ],382};383var flatCats = [];384function getCategories(categories) {385 function deepLookUp(subCats, parent) {386 let cat = {387 key: parent,388 subCat: [],389 };390 if (!subCats.length) {391 return;392 }393 subCats.forEach((element) => {394 if (!element.isFile) {395 cat.subCat.push(element.key);396 deepLookUp(element.sub, element.key);397 }398 });399 flatCats.push(cat);400 }401 deepLookUp(categories, "categories");402}403getCategories(data.categories);...
testdata.js
Source:testdata.js
1let data = {2 categories: [3 {4 key: "agarbattis",5 basePath: "/static/images/categories/agarbattis",6 sub: [7 {8 key: "14-agarbatti.jpg",9 basePath: "/static/images/categories/agarbattis/14-agarbatti.jpg",10 sub: [],11 isFile: true,12 },13 ],14 isFile: false,15 },16 {17 key: "ayurvedicoils",18 basePath: "/static/images/categories/ayurvedicoils",19 sub: [20 {21 key: "ayurfile.js",22 basePath: "/static/images/categories/ayurvedicoils/ayurfile.js",23 sub: [],24 isFile: true,25 },26 ],27 isFile: false,28 },29 {30 key: "beverages",31 basePath: "/static/images/categories/beverages",32 sub: [33 {34 key: "1-kokum.jpg",35 basePath: "/static/images/categories/beverages/1-kokum.jpg",36 sub: [],37 isFile: true,38 },39 ],40 isFile: false,41 },42 {43 key: "cleaningproducts",44 basePath: "/static/images/categories/cleaningproducts",45 sub: [46 {47 key: "8-phenyl.jpg",48 basePath: "/static/images/categories/cleaningproducts/8-phenyl.jpg",49 sub: [],50 isFile: true,51 },52 {53 key: "bleachingpowder",54 basePath:55 "/static/images/categories/cleaningproducts/bleachingpowder",56 sub: [],57 isFile: false,58 },59 {60 key: "detergents",61 basePath: "/static/images/categories/cleaningproducts/detergents",62 sub: [],63 isFile: false,64 },65 {66 key: "dishwash",67 basePath: "/static/images/categories/cleaningproducts/dishwash",68 sub: [69 {70 key: "liquidsoap",71 basePath:72 "/static/images/categories/cleaningproducts/dishwash/liquidsoap",73 sub: [],74 isFile: false,75 },76 {77 key: "powder",78 basePath:79 "/static/images/categories/cleaningproducts/dishwash/powder",80 sub: [],81 isFile: false,82 },83 ],84 isFile: false,85 },86 {87 key: "floorwash",88 basePath: "/static/images/categories/cleaningproducts/floorwash",89 sub: [],90 isFile: false,91 },92 {93 key: "handwash",94 basePath: "/static/images/categories/cleaningproducts/handwash",95 sub: [],96 isFile: false,97 },98 {99 key: "phenyls",100 basePath: "/static/images/categories/cleaningproducts/phenyls",101 sub: [],102 isFile: false,103 },104 {105 key: "vehiclewash",106 basePath: "/static/images/categories/cleaningproducts/vehiclewash",107 sub: [],108 isFile: false,109 },110 ],111 isFile: false,112 },113 {114 key: "garments",115 basePath: "/static/images/categories/garments",116 sub: [117 {118 key: "3-shirts.jpg",119 basePath: "/static/images/categories/garments/3-shirts.jpg",120 sub: [],121 isFile: true,122 },123 {124 key: "4-women.jpg",125 basePath: "/static/images/categories/garments/4-women.jpg",126 sub: [],127 isFile: true,128 },129 {130 key: "6-garments.jpg",131 basePath: "/static/images/categories/garments/6-garments.jpg",132 sub: [],133 isFile: true,134 },135 {136 key: "7-tailoring.jpg",137 basePath: "/static/images/categories/garments/7-tailoring.jpg",138 sub: [],139 isFile: true,140 },141 {142 key: "bermudas",143 basePath: "/static/images/categories/garments/bermudas",144 sub: [],145 isFile: false,146 },147 {148 key: "kurtas",149 basePath: "/static/images/categories/garments/kurtas",150 sub: [],151 isFile: false,152 },153 {154 key: "nighty",155 basePath: "/static/images/categories/garments/nighty",156 sub: [],157 isFile: false,158 },159 {160 key: "overcoat",161 basePath: "/static/images/categories/garments/overcoat",162 sub: [],163 isFile: false,164 },165 {166 key: "pants",167 basePath: "/static/images/categories/garments/pants",168 sub: [],169 isFile: false,170 },171 {172 key: "shirts",173 basePath: "/static/images/categories/garments/shirts",174 sub: [175 {176 key: "1.jpg",177 basePath: "/static/images/categories/garments/shirts/1.jpg",178 sub: [],179 isFile: true,180 },181 ],182 isFile: false,183 },184 ],185 isFile: false,186 },187 {188 key: "millets",189 basePath: "/static/images/categories/millets",190 sub: [],191 isFile: false,192 },193 {194 key: "nutritionpowder",195 basePath: "/static/images/categories/nutritionpowder",196 sub: [197 {198 key: "10-nutritionpowder.jpg",199 basePath:200 "/static/images/categories/nutritionpowder/10-nutritionpowder.jpg",201 sub: [],202 isFile: true,203 },204 ],205 isFile: false,206 },207 {208 key: "oils",209 basePath: "/static/images/categories/oils",210 sub: [211 {212 key: "oils.js",213 basePath: "/static/images/categories/oils/oils.js",214 sub: [],215 isFile: true,216 },217 ],218 isFile: false,219 },220 {221 key: "pickles",222 basePath: "/static/images/categories/pickles",223 sub: [224 {225 key: "5.1-pickle.jpg",226 basePath: "/static/images/categories/pickles/5.1-pickle.jpg",227 sub: [],228 isFile: true,229 },230 ],231 isFile: false,232 },233 {234 key: "readytoeatmixes",235 basePath: "/static/images/categories/readytoeatmixes",236 sub: [237 {238 key: "bisibelebathmix",239 basePath: "/static/images/categories/readytoeatmixes/bisibelebathmix",240 sub: [],241 isFile: false,242 },243 {244 key: "puliyogremix",245 basePath: "/static/images/categories/readytoeatmixes/puliyogremix",246 sub: [],247 isFile: false,248 },249 {250 key: "ravaidlymix",251 basePath: "/static/images/categories/readytoeatmixes/ravaidlymix",252 sub: [],253 isFile: false,254 },255 {256 key: "upmamix",257 basePath: "/static/images/categories/readytoeatmixes/upmamix",258 sub: [],259 isFile: false,260 },261 ],262 isFile: false,263 },264 {265 key: "rexinbags",266 basePath: "/static/images/categories/rexinbags",267 sub: [268 {269 key: "11-rexinbags.jpg",270 basePath: "/static/images/categories/rexinbags/11-rexinbags.jpg",271 sub: [],272 isFile: true,273 },274 {275 key: "collegebags",276 basePath: "/static/images/categories/rexinbags/collegebags",277 sub: [],278 isFile: false,279 },280 {281 key: "executivebags",282 basePath: "/static/images/categories/rexinbags/executivebags",283 sub: [],284 isFile: false,285 },286 {287 key: "handbags",288 basePath: "/static/images/categories/rexinbags/handbags",289 sub: [],290 isFile: false,291 },292 {293 key: "ladiesbags",294 basePath: "/static/images/categories/rexinbags/ladiesbags",295 sub: [],296 isFile: false,297 },298 {299 key: "laptopbags",300 basePath: "/static/images/categories/rexinbags/laptopbags",301 sub: [],302 isFile: false,303 },304 {305 key: "luggagebags",306 basePath: "/static/images/categories/rexinbags/luggagebags",307 sub: [],308 isFile: false,309 },310 {311 key: "pouchbags",312 basePath: "/static/images/categories/rexinbags/pouchbags",313 sub: [],314 isFile: false,315 },316 {317 key: "schoolbags",318 basePath: "/static/images/categories/rexinbags/schoolbags",319 sub: [],320 isFile: false,321 },322 {323 key: "tiffinbags",324 basePath: "/static/images/categories/rexinbags/tiffinbags",325 sub: [],326 isFile: false,327 },328 ],329 isFile: false,330 },331 {332 key: "snacks",333 basePath: "/static/images/categories/snacks",334 sub: [335 {336 key: "1.jpg",337 basePath: "/static/images/categories/snacks/1.jpg",338 sub: [],339 isFile: true,340 },341 {342 key: "2.jpg",343 basePath: "/static/images/categories/snacks/2.jpg",344 sub: [],345 isFile: true,346 },347 ],348 isFile: false,349 },350 {351 key: "spicespowders",352 basePath: "/static/images/categories/spicespowders",353 sub: [354 {355 key: "garammasalapowder",356 basePath: "/static/images/categories/spicespowders/garammasalapowder",357 sub: [],358 isFile: false,359 },360 {361 key: "pulaomasalapowder",362 basePath: "/static/images/categories/spicespowders/pulaomasalapowder",363 sub: [],364 isFile: false,365 },366 {367 key: "rasampowder",368 basePath: "/static/images/categories/spicespowders/rasampowder",369 sub: [],370 isFile: false,371 },372 {373 key: "sambharpowder",374 basePath: "/static/images/categories/spicespowders/sambharpowder",375 sub: [],376 isFile: false,377 },378 ],379 isFile: false,380 },381 ],382};...
copy.js
Source:copy.js
1module.exports = {2 less: {3 files: [{4 expand: true,5 dot: true,6 filter: 'isFile',7 flatten: true,8 cwd: 'scss/temp/',9 dest: 'scss/',10 src: ['{,*/}*.scss'],11 rename: function(dest, src) {12 if (src !== 'material-design-iconic-font.scss') {13 src = "_" + src;14 }15 return dest + src;16 }17 }]18 },19 action: {20 files: [{21 expand: true,22 dot: true,23 filter: 'isFile',24 flatten: true,25 cwd: 'node_modules/material-design-icons/action/svg/production/',26 dest: 'svg/google/action/',27 src: ['{,*/}*_24px.svg'],28 rename: function(dest, src) {29 src = src.replace('ic_','');30 src = src.replace('_24px','');31 return dest + src.replace(/[_ ]/g,'-');32 }33 }]34 },35 alert: {36 files: [{37 expand: true,38 dot: true,39 filter: 'isFile',40 flatten: true,41 cwd: 'node_modules/material-design-icons/alert/svg/production/',42 dest: 'svg/google/alert/',43 src: ['{,*/}*_24px.svg'],44 rename: function(dest, src) {45 src = src.replace('ic_','');46 src = src.replace('_24px','');47 return dest + src.replace(/[_ ]/g,'-');48 }49 }]50 },51 av: {52 files: [{53 expand: true,54 dot: true,55 filter: 'isFile',56 flatten: true,57 cwd: 'node_modules/material-design-icons/av/svg/production/',58 dest: 'svg/google/av/',59 src: ['{,*/}*_24px.svg'],60 rename: function(dest, src) {61 src = src.replace('ic_','');62 src = src.replace('_24px','');63 return dest + src.replace(/[_ ]/g,'-');64 }65 }]66 },67 communication: {68 files: [{69 expand: true,70 dot: true,71 filter: 'isFile',72 flatten: true,73 cwd: 'node_modules/material-design-icons/communication/svg/production/',74 dest: 'svg/google/communication/',75 src: ['{,*/}*_24px.svg'],76 rename: function(dest, src) {77 src = src.replace('ic_','');78 src = src.replace('_24px','');79 return dest + src.replace(/[_ ]/g,'-');80 }81 }]82 },83 content: {84 files: [{85 expand: true,86 dot: true,87 filter: 'isFile',88 flatten: true,89 cwd: 'node_modules/material-design-icons/content/svg/production/',90 dest: 'svg/google/content/',91 src: ['{,*/}*_24px.svg'],92 rename: function(dest, src) {93 src = src.replace('ic_','');94 src = src.replace('_24px','');95 return dest + src.replace(/[_ ]/g,'-');96 }97 }]98 },99 device: {100 files: [{101 expand: true,102 dot: true,103 filter: 'isFile',104 flatten: true,105 cwd: 'node_modules/material-design-icons/device/svg/production/',106 dest: 'svg/google/device/',107 src: ['{,*/}*_24px.svg'],108 rename: function(dest, src) {109 src = src.replace('ic_','');110 src = src.replace('_24px','');111 return dest + src.replace(/[_ ]/g,'-');112 }113 }]114 },115 editor: {116 files: [{117 expand: true,118 dot: true,119 filter: 'isFile',120 flatten: true,121 cwd: 'node_modules/material-design-icons/editor/svg/production/',122 dest: 'svg/google/editor/',123 src: ['{,*/}*_24px.svg'],124 rename: function(dest, src) {125 src = src.replace('ic_','');126 src = src.replace('_24px','');127 return dest + src.replace(/[_ ]/g,'-');128 }129 }]130 },131 file: {132 files: [{133 expand: true,134 dot: true,135 filter: 'isFile',136 flatten: true,137 cwd: 'node_modules/material-design-icons/file/svg/production/',138 dest: 'svg/google/file/',139 src: ['{,*/}*_24px.svg'],140 rename: function(dest, src) {141 src = src.replace('ic_','');142 src = src.replace('_24px','');143 return dest + src.replace(/[_ ]/g,'-');144 }145 }]146 },147 hardware: {148 files: [{149 expand: true,150 dot: true,151 filter: 'isFile',152 flatten: true,153 cwd: 'node_modules/material-design-icons/hardware/svg/production/',154 dest: 'svg/google/hardware/',155 src: ['{,*/}*_24px.svg'],156 rename: function(dest, src) {157 src = src.replace('ic_','');158 src = src.replace('_24px','');159 return dest + src.replace(/[_ ]/g,'-');160 }161 }]162 },163 image: {164 files: [{165 expand: true,166 dot: true,167 filter: 'isFile',168 flatten: true,169 cwd: 'node_modules/material-design-icons/image/svg/production/',170 dest: 'svg/google/image/',171 src: ['{,*/}*_24px.svg'],172 rename: function(dest, src) {173 src = src.replace('ic_','');174 src = src.replace('_24px','');175 return dest + src.replace(/[_ ]/g,'-');176 }177 }]178 },179 maps: {180 files: [{181 expand: true,182 dot: true,183 filter: 'isFile',184 flatten: true,185 cwd: 'node_modules/material-design-icons/maps/svg/production/',186 dest: 'svg/google/maps/',187 src: ['{,*/}*_24px.svg'],188 rename: function(dest, src) {189 src = src.replace('ic_','');190 src = src.replace('_24px','');191 return dest + src.replace(/[_ ]/g,'-');192 }193 }]194 },195 navigation: {196 files: [{197 expand: true,198 dot: true,199 filter: 'isFile',200 flatten: true,201 cwd: 'node_modules/material-design-icons/navigation/svg/production/',202 dest: 'svg/google/navigation/',203 src: ['{,*/}*_24px.svg'],204 rename: function(dest, src) {205 src = src.replace('ic_','');206 src = src.replace('_24px','');207 return dest + src.replace(/[_ ]/g,'-');208 }209 }]210 },211 notification: {212 files: [{213 expand: true,214 dot: true,215 filter: 'isFile',216 flatten: true,217 cwd: 'node_modules/material-design-icons/notification/svg/production/',218 dest: 'svg/google/notification/',219 src: ['{,*/}*_24px.svg'],220 rename: function(dest, src) {221 src = src.replace('ic_','');222 src = src.replace('_24px','');223 return dest + src.replace(/[_ ]/g,'-');224 }225 }]226 },227 social: {228 files: [{229 expand: true,230 dot: true,231 filter: 'isFile',232 flatten: true,233 cwd: 'node_modules/material-design-icons/social/svg/production/',234 dest: 'svg/google/social/',235 src: ['{,*/}*_24px.svg'],236 rename: function(dest, src) {237 src = src.replace('ic_','');238 src = src.replace('_24px','');239 return dest + src.replace(/[_ ]/g,'-');240 }241 }]242 },243 toggle: {244 files: [{245 expand: true,246 dot: true,247 filter: 'isFile',248 flatten: true,249 cwd: 'node_modules/material-design-icons/toggle/svg/production/',250 dest: 'svg/google/toggle/',251 src: ['{,*/}*_24px.svg'],252 rename: function(dest, src) {253 src = src.replace('ic_','');254 src = src.replace('_24px','');255 return dest + src.replace(/[_ ]/g,'-');256 }257 }]258 }...
Gruntfile.js
Source:Gruntfile.js
1/* jshint esversion: 6 */2/// <binding BeforeBuild='default' />3module.exports = function (grunt) {4 const sass = require('sass');5 6 require('load-grunt-tasks')(grunt);7 grunt.initConfig({8 pkg: grunt.file.readJSON('package.json'),9 clean: { 10 debug: {11 src: ["dist/*"] 12 },13 release: {14 src: ["dist/*", "Publish"]15 }16 },17 sass: {18 options: {19 implementation: sass,20 sourceMap: false, // Create source map21 outputStyle: 'expanded' // Minify output22 },23 dist: {24 files: [{25 expand: true, // Recursive26 cwd: "src/content/sass", // The startup directory27 src: ["*.scss"], // Source files28 dest: "dist/content/css", // Destination29 ext: ".css", // File extension30 }]31 }32 },33 copy: {34 release: {35 files: [36 // js37 { expand: true, flatten: true, src: 'node_modules/@fortawesome/fontawesome-free/js/all.min.js', dest: 'dist/content/js', filter: 'isFile' },38 { expand: true, flatten: true, src: 'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js', dest: 'dist/content/js', filter: 'isFile' },39 { expand: true, flatten: true, src: 'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map', dest: 'dist/content/js', filter: 'isFile' },40 { expand: true, flatten: true, src: 'node_modules/bootstrap4-toggle/js/bootstrap4-toggle.min.js', dest: 'dist/content/js', filter: 'isFile' },41 { expand: true, flatten: true, src: 'node_modules/bootstrap-slider/dist/bootstrap-slider.min.js', dest: 'dist/content/js', filter: 'isFile' },42 { expand: true, flatten: true, src: 'node_modules/jquery/dist/jquery.min.js', dest: 'dist/content/js', filter: 'isFile' },43 { expand: true, flatten: true, src: 'node_modules/webextension-polyfill/dist/browser-polyfill.min.js', dest: 'dist/content/js', filter: 'isFile' },44 { expand: true, flatten: true, src: 'node_modules/webextension-polyfill/dist/browser-polyfill.min.js.map', dest: 'dist/content/js', filter: 'isFile' },45 { expand: true, flatten: false, cwd: "src", src: '**/*.js', dest: 'dist', filter: 'isFile' },46 // css47 { expand: true, flatten: true, src: 'node_modules/bootstrap/dist/css/bootstrap.min.css', dest: 'dist/content/css', filter: 'isFile' },48 { expand: true, flatten: true, src: 'node_modules/bootstrap/dist/css/bootstrap.min.css.map', dest: 'dist/content/css', filter: 'isFile' },49 { expand: true, flatten: true, src: 'node_modules/bootstrap4-toggle/css/bootstrap4-toggle.min.css', dest: 'dist/content/css', filter: 'isFile' },50 { expand: true, flatten: true, src: 'node_modules/bootstrap4-toggle/css/bootstrap4-toggle.min.css.map', dest: 'dist/content/css', filter: 'isFile' },51 { expand: true, flatten: true, src: 'node_modules/bootstrap-slider/dist/css/bootstrap-slider.min.css', dest: 'dist/content/css', filter: 'isFile' },52 //{ expand: true, flatten: false, cwd: "src", src: '**/*.css', dest: 'dist', filter: 'isFile' },53 // content54 { expand: true, flatten: true, src: 'src/*.html', dest: 'dist', filter: 'isFile' },55 { expand: true, flatten: true, src: 'src/manifest.json', dest: 'dist', filter: 'isFile' },56 57 // images58 { expand: true, flatten: false, cwd: "src/content/assets/images/", src: '**', dest: 'dist/content/assets/images' },59 ]60 },61 debug: {62 files: [63 // debug64 { expand: true, flatten: false, cwd: "src", src: '**/*.js', dest: 'dist', filter: 'isFile' },65 ]66 }67 },68 jshint: {69 options: {70 jshintrc: '.jshintrc'71 },72 all: ['Gruntfile.js', 'src/content/**/*.js'] 73 },74 watch: {75 debug: {76 files: [77 'Gruntfile.js',78 'src/**/*.*'79 ],80 tasks: ['release'],81 options: {82 spawn: false,83 },84 }85 },86 shell: {87 ps: {88 options: {89 stdout: true90 },91 command: 'powershell.exe -File CreatePackage_Grunt.ps1'92 },93 sh: {94 options: {95 stdout: true96 },97 command: 'create-package_Grunt.sh'98 }99 }100 });101 // debug group task102 grunt.registerTask('debug', ['jshint', 'clean:debug', 'copy']);103 104 // release group task105 grunt.registerTask('release', ['jshint', 'clean:release', 'sass', 'copy:release', 'shell:ps']);106 107 // Runs the .sh package create. Possibly.108 // grunt.registerTask('release', ['jshint', 'clean:release', 'sass', 'copy:release', 'shell:sh']);109 110 // review group task111 grunt.registerTask('review', ['clean:release', 'copy:release']);...
Using AI Code Generation
1const isFile = require('storybook-root').isFile;2const isFile = require('storybook-root').isFile;3const isFile = require('storybook-root').isFile;4const isFile = require('storybook-root').isFile;5const isFile = require('storybook-root').isFile;6const isFile = require('storybook-root').isFile;7const isFile = require('storybook-root').isFile;8const isFile = require('storybook-root').isFile;9const isFile = require('storybook-root').isFile;10const isFile = require('storybook-root').isFile;
Using AI Code Generation
1import { isFile } from 'storybook-root';2import { isFile } from 'storybook-root';3import { isFile } from 'storybook-root';4import { isFile } from 'storybook-root';5import { isFile } from 'storybook-root';6import { isFile } from 'storybook-root';7import { isFile } from 'storybook-root';8import { isFile } from 'storybook-root';9import { isFile } from 'storybook-root';10console.log(isFile('
Using AI Code Generation
1const storybookRoot = require('storybook-root');2const isFile = storybookRoot.isFile;3const isDir = storybookRoot.isDir;4const isRoot = storybookRoot.isRoot;5const dir = storybookRoot.dir;6const root = storybookRoot.root;7const file = storybookRoot.file;
Using AI Code Generation
1var fs = require("storybook-rootfs");2fs.isFile("/test.txt", function (err, isFile) {3 if (err) {4 console.log("Error: " + err);5 } else {6 console.log("Is file: " + isFile);7 }8});9var fs = require("storybook-rootfs");10fs.isDirectory("/testDir", function (err, isDirectory) {11 if (err) {12 console.log("Error: " + err);13 } else {14 console.log("Is directory: " + isDirectory);15 }16});17var fs = require("storybook-rootfs");18fs.isSymbolicLink("/testLink", function (err, isSymbolicLink) {19 if (err) {20 console.log("Error: " + err);21 } else {22 console.log("Is symbolic link: " + isSymbolicLink);23 }24});25var fs = require("storybook-rootfs");26fs.isHidden("/test.txt", function (err, isHidden) {27 if (err) {28 console.log("Error: " + err);29 } else {30 console.log("Is hidden: " + isHidden);31 }32});33var fs = require("storybook-rootfs");34fs.isReadable("/test.txt", function (err, isReadable) {35 if (err) {36 console.log("Error: " + err);37 } else {38 console.log("Is readable: " + isReadable);39 }40});41var fs = require("storybook-rootfs");42fs.isWritable("/test.txt", function (err, isWritable) {43 if (err) {
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!