Project

General

Profile

Defect #40193 » wiki_formatting_test.diff

Vincent Robert, 2024-02-05 16:11

View differences:

test/unit/lib/redmine/wiki_formatting_test.rb
89 89
  def test_cache_key_for_saved_object_should_no_be_nil
90 90
    assert_not_nil Redmine::WikiFormatting.cache_key_for('textile', 'Text', Issue.find(1), :description)
91 91
  end
92

  
93

  
94
  COMPLEX_INPUT = <<~DIFF
95
/qEFUYVKNwHJWxx7by3QVjuTAngwvyMoksy6LT0nH0WTyaK+cO46r5IxiQk0nP3HH0ysumV954euVl0zs/i975E+Tf3Gx6546nT94E+uRl0Td/In3zs+lXMIkBBVlcnJ/BZcvHcnnhBK4omsRXiqby9aLpfLd4Dg8UzeMXa3J5bXMhq2pPU+5axPBlHGxTltj8L+6fQdrDP7G7/oesBld4svkBZscV2I6H7UhGvu7I9N2o7tComtSkNCpjCicbYxyri3LwTAN7y2vYUVbJjmPl7DlxmmPVdVTFEzTp+jlgejrNQlZpSukWKcNBMV00W2C4Mqh4LgfiP2/C7wNZztPG8wKmvQwiKIZ+DmCeAsqbFLYcqWTVtgMU7T/M6gMHKT50kLXHjrLp1Am2VlWyu76WA82NHGlu4HhLM5XxOPVJhVhSR1VMbM3FMwWO5cqSqrZzDkMjaOezGs5vn3cUFxeH+njBcS7YEBraAWrjl5bygvxxB7sVXV7YDlrCV8MGGlNxaf6HyoyObLaM8KpBrV0hHRDHEsRiiXOMI8OVhoEAHMvGcRQckph+RBJhIlQF23QQnlTzv+7aJxk2oVjmJ/qRY1dANGXKFBAhSLimNG4ccJNGyOQHD01PkHRS8uaekmBELJ5MTwgB2aMncUn/yzlTn5RUdUWgK3Y4GXQkihYYXMKV6Tf5C/fTo9P1VJ6U1ylzwRVSuhE6/gnFRdOk8+4KGSkOoqsO0JJwQ9HA1pQbxZDXFDNSPtIoqxEEeT1eYF350aXaumYZyXfSi8d0ZLrC26/s5rvXD5XpCy40NaWDPy74jIw4FrW4xGW+rwBQsR1ZzSSVNFqlUDgoWgrXg2hUAhFNjTHf04ep45fQr883OHyySipIeDLJNxQWFODqpuwQIcthpVwHUGmJl2OiExfNONQRVcoQfmVg00nJ31aksKVNMwJFgjo+GeErgx6kd9fBdG4/mK5dHqBtmzsZdNljnK2W3ZUypYCp6Z67JCwzeGCDl8AVjQjiGHZSsgqScOVVbzJtbgOqAOEXojJ0fy4JWUXENQNhNhXVlHrsjm2iq8EEgmisUTrvVgzVSEj73ZPpES5guUkEKo6t+SwLD11TUE3JYNBdqXeS1PRwzgC4ul9P27GZNm0BbfvewqFKydhwUq32ANUEE350/5s8/9xCEsBzb4+Vw2FK2QaZP+z6aQlxTBrR7WYkwblB6oWIAGzwV1MINgTAY2un7LOAh/MBhNZEtyCfrVU777Pnp160Lp13PjWO8HzOb18eXx6ff3yhYIMtaQnCT6cI0xmCsL4lQe5Gw6aRNN1+0p4tPPjhPxg89AO+8e67XPfBu1z6yl+5ZfQwrnzpOe768B2Gb1pPOX66hEizF4JmumlVanH+mhHnNf/5wIhyAuBRQ1IlfJA8KuTDuSVHeHzsSG546yWue+dlrnnzRa5/5298/e8v8VD2GOY1nOUAUIoI0zl0v0+0hBEGDIL7/D8xG/7/ADYEgQ0TmbdiC58p5yI8B1t46Egq8wEs3tiznq/NGkbPhcOJLB9DZMVoOqweR6fCcXQqzPLbBDqvnkjHItkiBWOILBst379qDJHCDC4ozqRt8Vg6FmfStWA0nZeOIbIyk0hxFpE1k2i3ZhrdCqfRffV02q+eQmTNFCIbJhJZn0Xb/JF8e81MJrac5jgSCNjlqPy0eB5Xz/mQq2d+wByvmVKgWsi0jqGHdtE/ZxTdt0zj6/Ub+BmneCd1htkixTTiPPppLlcvzeLy4ilctyufJ2p2M0qr41Pk5yuAIgx+uLOAjktHEVmXRWTtZNptmcvF+wqILB1Fp82T6V6UxTeWTeZDpYpsL8rDW5fTZXkWkVXZXL5lMTcsn8Uv8hYy5eAByoBdwGvJEwzIzaRvzige3bKMNa7BNmCEV8+AvNF0zRnOV1dMYQEeb1SW0iNnHJGC8bRfOpHeczO4ZVomTy9fQkEyxmSlkUuWTyGSn0GkYBx9P1nIRRsW0HVxFt0XjeWp5jImukl+v28j162ZToc579Nr7gjuWpvDC7s3s6K+hpgLZ1wYevogVy4YxYD8sTywr5i5usKLRWu4b8YkfrBiAe+dPcQwq4Z+OVn0Wj2TjoXT6LZhNl1WTqJbTgaXzsnkzxX7mYnDE9tW85PDm7kwZywDCqdyX+0uvl26gb6LM7kjbxrjmk8zx4pz78p59Fo+gYE7FhPJyaDfxgV0+nQ+kXkj+dH2jczA5k/lB7h6URaXzBnJn5Vy3sKk25Jsui2bTLuZwxiNwfNnS7lwUTY98rLpuWoKA1dP4+IF4/j+xqXMTcV49cBOrlkxjb4LRvPLbcUsxOX6tbPps3g01y6awCvRU/yuoYT++dl0XZFN22VjufHEeroVTaTjmgkMyM1kZEUpR/0xfOvkATrnjZHzojibyLY5RLbOJrImm+6Lx/CmWcUMFB7cmEO7glG03z6Ta2q20GfnEnqsnMij+9ay0FJZDzxx+GMuXjSWry7K5o9Hd7AaWA78vmynZPhMH8nztSVMxOWuLcvpUjCRrouzycJmCtB7ySQ6LZvMN3as5BfmWb5etpGua2bRJSeL3zWd4rVoDV9fPJOeBVPovW4O/2FW8ncame41ss5tpgqbOixO4TGiZAvfWTqZfqumESmeTmTDDCLrp9GpMIv+BWO4cGkmnVZmc8Hqyee0SOGksLUpmkKboimf+VqkcAKRwgwiRRlE1owlUpxJZPVYIqvG0m35eC4qGM/l0z7igYWTmXrqCCXCppng/uIbo/9i//ys+6DnSf2rQIfsv3sEwa7PS4MNigyYnhTlTFouMcOlSbOoSWmciatUNKuUNSQ4WtXEvlNn2Vl6ih0lZewoOcaOkhKOnC7nRG01NbEoccs+X0szbO55fwOLNfh7/ushs8GTd0/R6nokG9ol6TmyFKxtc7ShkU1lx1m+/yD5+w+w7PBRVpceZ/Whw6w7eoTNx8vYWlHOrrNV7Kur5WB9PUca6qhMJqlVVFp0k6RuYegOjm6n8x7/RZrHf+X+GKRLaFpQFMFj/fr1//S+iEzOP9cgSBvd8m9KiYWvOUG5Bs/zxebkSymvdU1QTzqKDmA4qDGp9Bm3dRpMQwrNBfRKeXpY0Tg4IqwPqpta6KgkUyo6NiY2nuKGVo/j36gvG/Qgw6cXkYAw38RKvw3VM1HxSAoDoRjgR8mVUHRAfneD0hxSQFOGgoWH6qcu4Hq4hurTQNP0lsCQCSaQiYfqmbKOrw2uAloyeLcDtGB7DWHQvqElGk4wxafKCyEFtwKnG9K5qnGfIhB8xsQjZiWxgNrmekLqjZBgjq4pgIehu6GN1ZBskd9l2VK4T4FXnlvHkLszSSn+AvE4p9qWg4pNMzGrDIcomi3f0xw7AbTgOSKMYAtMmR7gn6eiO2hGKjw3O1C99YKIkwK0oBp1GEBViz/fPEc2Ifs4ZtvgV3VutprQcNCEhWaZuDi+qKZOTWO1nxIBLi0oVjON9fD4kFH06/4jilbU4bry+uKa3Iw2bDlG5x5f4Y67fyVLGgtI6i6GhV9JxcPzE5sbW+Q12zRjYqI5BhgOdgsMuOQFRkw+Rb2tonDWz70A3dGIWRJ0sDxIOSaqLM6EptcATpjCYJpSp0SQRJDERcXGQTUdXCCux3CJo9k1BKvOsBVcP5Lv4vm6ajJ9yRQ2pqlj6CnARk22SMRAyLzsOgdUHYKyFqZeDyIKOlxz8RNkZx+h2pTvjSlGqFuhGdCi6ljYmCRwSCKrPCd9FyAqJ68gnEX4IJrcz7zP3+g+a+P7rOP8SOr57/+M7zj3KSmCeS5T4jxxni+Bhy+P/+T4wsEGW85NCw/DBxzCmIFqh051k6qHauZHHI2zSLZDIDD2bvYsAkKT7aYBbykCKwH6WEpJ67oQBCRa66j8XzSB1IYJ6A7++o2nrNAOCGqNBzoPSeBQdRMNVlrgMBRWlH46CNCTWghqtjbwwm3gPNbFv+v4LzEbZAQmDTa4LriOpKciwYb9uLy0dz1XLhhFt9VZRLbPJLJjBpGiLNoVZtOuMJu2RRNoWzSJdsWTaVc8mfZrptBp/XQ6rJtGh/VTaL9uIu3WZtFm7TjarBlL+6KxdFs5ji6rxhFZk0VkXTaRtROIFE6k/fJJdFg2icjyCURWTyBSOIbI2rFckDuMG1ZMZkp9OceB08A2T+cHa+dxxbwPuWLeUGYQ5TBSwG6P7fLu4Z0MWpZFpw0TiKzOoFPuSL49L4uXdmxivt7IW6f2cN+6BfSd8xFt5g2lX14mj29ZwaxEHYeRgMMCu4n7tyymzdJRRNZPILJxBm0+nUtkwzQihZl02j6LrmuyuDJvPK81lTFWxHh0zxp6r55G2xUT6V84k/7ZH3Fvxkgy1m3kpJC56+8ky7l86QQuXZLJDzcvZbNucAjIFjEGFYyn9+LRXFc4gwLg3crj9M7Jps2yifRdM4evrpjLf6xfxrvbP6ZIU8lqqebCZZOIrMwisnQ8XQun0XFBJv0WT+QbaxbyD7WaTcByXN7Tz/DIiQ30LRjPhUvGcUvBVEZVHArz5j+sPsI1+ePpvWwcdx9dx0RMfrR2OZdM/oivzB/Dc5W7GEojPZaMp8fa2XRcO5POa2fQvmA8/ZdP4rrCObzccpKJuNyxfjG37ymk/6optMnN5NLtS+izbhbdFo3i+oJJvF5/lCzi3Lx2Hu1XT2DgsZV0XjOTC1ZNJbJ5DpGFI/nhro+Zgsuvzxxg0NKJ9Fk8mt8Yp3gDm575k+hdOINu8zLJwuOlsye5dNEk+hRMpG/xDL5zqIhHD23i5fIj5CoqT68rpt+sUXSd/RG/P/wpU7C4cv1suuSO4ZqcifwtVskf6ksZmDuRHgUTaJc7hi55Y+mUn0H34klcVzSTBc0NnAJ2AG+WH6JzwTgiayYRWTeTSNFUIsUTabtxOpEFw3mTJoZ7TVy1eDwd102izf9h77yjo7jSbV/knDMGA8b22MY5DA4YG4PBaZx97ZlxGGeccza2MSYL5QgCiYyQUADlLJAQiCQQCCFQzrFbnbsr/N4fp7olHGbmvrnvzb13+ax1VndXV1dVnwrnfPvsb+/DkUw6ncS4g1EMiw/gtuQthLe3kAM8dTSDCRGruXKzDx+WHiEHSABePJ3P5C1eXBK+ilfri1mJhRuydjI4IYQR0cEEqE4CNRejdgUxeG8Yl6Rv48bTmUw8Gkef5DD67vDhmboS3q49x5Xb1zMkLoQhKRuZkhTJ3KzdfHQih5j2SipwUI+Ds8gsO5nH1dt8GRodhLQvDCl1A1JqCNJeH/rsWcXA2DX0TvBF2hv4KzUAaW8AvVNC6Z0SSq/kkF9UKTkQKdUHKcMXKSsAKScQKTsYKSuEPpnrGZkSxphNK7l9ZzD+tWc5g0h984DZ/yRYq2kaiqL8ap/4L2k10J1g60TFpXU7U7jTAhRF6BHYHQoWh4zJLtNpc9JqsdFkstFskmk0y9R3OanptHC+pZ3SmjqKz1dwtKyMotLTHD5TwuEzZzhaVkZJZTWVTe00d9kw2F24FCHg77Zk1lTdtaKHc8VvVXc81pO5YJShwWLnQqeRkvYW9hUfJe7UEfacPcbu8qNEVR5le/VRttUeY3fVCXKrz1NUVc2JunrOtDRzvqODapOJeouFJquVFrOFdouNLpsTm92J3e7EaXeg2AWbQVNUVFX+RXW3728yGnTGA/ALBoMsy2RmZv7iXEues6KqXExF/mWVXTYcFrMISpxOfRodXHaNDk0MBppM7SKoVHu0oAodhlYcqBgRatQixncDGg5wGkFx0W4V0o1WRxdoQlXSbOqemXBLpWp2MUttaYXLpj/B0pBMWhGzxjiE3ZVRt8Z0eztbwZNY79QDWNkB7S3d3quKGezt4qK16AG+TQcOkHXhEGRkWabL6BDIk1lYBXa2gUETAyMNupnfej5/i02XWlFVrHYxmeG2sGwziyDUvR8L0OmG0dRuKigadLWbsImJZ7pkMKvdVB+b7nJhd6dOYKOppdKjNdHcbhWHpfVwvJHh7ddiePyhQGQ9CLc5RADa2SWCcRloM7Ui8t2ho1OMicCB3W7wDJoMBidOVfNYeXZ0iPU0EP7p7pxihziv4ry4UHVH9DaH/j9VdDEB6GhVsWjd/9/hcGFQoM2payGo3dUl6xoDVgESWOUunCrMuupZPn4nQWiW2qGzU2caqEJ1t6lTw2CDK658kojNRZj1a8fpFGklXV0XU+6tFqMO3OhCp04w1MFlV3/ND35nMaFDUfr1KqNixyXyo13dIa2G7GF7WLrAYcGjWyYeRgoOBToMisc73eoUwJVTsXpmx5wqtJnEdhxW+OCLn4QHsAwmN4opi/+j42s4bdCsig7EqYLdbMRud+sUt1JzpobLxr3G6hUVtCKgA4c+enfZBdPGqXWL6bSbREqP1SnOp8PR7glWPOClB2xQ/3Ngwz+qPZ/jPwcb/h4I4W6MX9TfYjr8Xn4vF5f/DmkUaOJ+cuoMB/fMC0BXu9Fz+VocsseZoNJiEs8IWzdI7+kUjIqYQXCAyyrjcul22Ho6peKSsVncnYyb+inrzAVZB5q7l180iaHJPSY4wCWrQvfJvZoCtnYrWDWcHU5wgalZoOAfv/0FNqOYAZDdFEgQdrR6URSlOx/4N4DLf4Rh/leVfwg2eB4t+uDNbXYvi4GgjDhXxah8ejSTS7etpW/cOqR0P6SUtUjpoZ6A4qKgIkm875MaRu+UUKTUYKSUAAEqpHgjpayjd9I6huzzZXCSH1JWIFJ2EFJmMFJaCP32rWfAvg0Mzoqkd14EUoY/0v4QBsSt5boYP8Jqz3IaAValyV08kLyRKRHfMzVyKaF0UIxgJJwAfig9wqW7fRiQ4IW0ewXDt67g9nBfvshOpwCNVOx8W3eK+QV7mJ6+iWE7VnHVVh8W709mv9PGCSC4s5LbU8LpFbOKvvvDGXZwJ32yI5AS/ZCyghhVvJOB+3yYunMdb1QfYS1GHjyewaA9/gxMWc99tUW803aB4IZqkhsbqQWOIvO98QJTo/2YvG0Nj2VEc9AuC+YPRiZuW82EPb5csSeEXWj8WFPB6J0B9I0P5sbSXN6yNRDq6mCnsYkDgFdLJUN3rEFKWMeQrI1cczKFYdt9mRm/kfsKE1ltb+UgIiVkGy6+p5VrCnczam8Al+z04pPyQsoSgwVPAAAgAElEQVQQ4Mqq+jPctC+MIbtWM6sohs/lZubk7GFMlDejtq3kvYajrKSd6albGRAXyrC0CK4qTmFqxjYmx4RwW/I2fnC28qPaxuVRgcxMi2R4rD/SjjVMyt3G6PgQxu4W4MzzFw7wg6uBa1MikeLWMubMXqYd2YcU5YeUtgFp+zoey88kQLHz9LlDTNjjz6h4fx5oKeIN2pmUvJmxqRGM2RWILzLvlJcwPsKHEbsCuO5kMi+p9SzDyiZU8oCP8nK5LDqESxPDeK4kj69c9YzJ3EDfuHXM2B3Mhx0VvNJSxrid/gzc5sWl2du4JHUjQ6N96B+9ltmZO0m3O6hEBxsqSxgeE0CflPVcWriXYcmbkeID6Z8RjrRtBV9h5jNbLSM3raBXRjBSTijS3iB6RfkyKNaXS3f4ElhfQw7wxNF0Jm314g9bfHn3VCE5wD7g+bMFTNntz9Rdfvyl/hhf0MasvF1IUV6M3xtOOOBt7WJIpBeDE8MYEh2AtMOLPukbkJKCGZYQykudF/iopYprYyIYmriewSkbGLxhDePXLOGhyCA2XThBNU4qsXAaF8tLCrh6SwDDo0OREiOQsrYgZUUgpQcjJa+jb4ovvZL8kZJ01kJSsGAxeMCEEKTEoO6aFHxxTQlC2uct2AzJvkip/gJwTAtASgqkd0IgE6IDmB27Af/mCk4jQGnPZLFT/acfooqieHL63VaS/6pmQ89g/RfpfO4VfuWZ72Y7WBSNpk4LjQYbjQYbDZ1m6joMVLW0cr6hkbL6WkprqzlVeYFj585RWFJC/okSDhw/Rf6JMxSeOMWZs6WcKztNxYUy6moraWmux9DZitnUic3ahdNhwemwYLeZsFqMmE2ddBnbMRra6DC0U1pVyckLlRwpLefgyTPkHD1FxqHjpBYeJelwEYlHj7L3xBH2lhQRf+4Ie6uOkNhwgpS202S3neVkayNlTa1caG2jqqOTekMXzSYz7RYbRqtg9jtVzUNg+GX5NRBE/bUu85eNr4nz6mY2uMcGXV1dFBUV/YpApNty4yIq8i8H31ZTBx2tDaDJdLW38MSDi+gvSQyUJAb1H8Z3/htEMILMLbdeSx+pL48tehJkSN2XgtRLQuorsedgEU36oMJhMNLW3ogIwDvwWvY1A0dOJSY1H809y6jrv7U5nSKoqYU/3/c1faWrmDxmIZcMf5rB/R9nxfqztGlgboM/P7SU3r2uY9yke5CkmYRHFtBog04rLP9wF2Ol25k+41lGT3yEMYPnMWPCUwwb+Qx+/iVMGz2XsX1vYfiAp3l9cTR2DSK3ZDBMms2UYQ9wvLQNK/DNF/6MG3EXk2e+yOTpLzJYuonLxi/k0edX0+QSWgWbA2IYLz3CjHEvUVxrxAQCfOiCefd+Tf8h8xk66I+MHHY7Uu87+GllNm888z19pZnMWbQSowL5iWVMHHgFvYbMISa9BXO7aBa7He5d8BHDxy5Akq7nuuvfoNOoW0P2jJ/cQnkueO0VPwYNvYFBQ29D6jWXy//wIjWNCnYZ3ns7jitnvs2wEbchSdOYMOFPXHnl83RZxDPFJyCG0eNuRep1DX1638U1V35IW6MQv/zm0wCGSA/zp3v92bzhMEMGX8vHH2zirde3MGrIUzx0/3I2hmcjSVNY8kkcwWtOM1R6mAmjnqC0WrgcoAqgaNHj39Bv6H30ka7n3htexVoP77y8iamXvcGcecsI9s5j9OA7ePuj7ZgUMZt1/4IPkaQ7GNL3Sa6Z+QmtjT0gMhXuuusF3lrsi90Kxg7BiHno4beQel9B/wEPcefc77BrAnRYuSqbe+Z95JlZk13w6AM/MXH0ffSVrmHquAewG8BlFoDXwwtX00uax9gh9zFs0AIk6VFWBVbi1ODu259jlPQqD9wdhglIyz/I1KFPMlBaRGZBI7UmMYNoM8I7r4QwZtADDO+3gMmjH+bqmY/RZYCN4dkMH3orY0ctZFD/e7jqiucxGEWA4BDIF089+A2SdD0TJz/M8D53MaLvXAoPaRjt8NGXsQweMo/br36N3RtO06/Pbby7eD2RPgcYIN1Cv/GPcKRWtJNicz9EZEK8VjBl2PWMkj5g5OAVSNJ9fB+UzpLvt9NbupoFd33L+oBSBg6+mzff8cWpim2YbODQ9UdcDicekFcP7N2pQ24dhV90Cv/Z6qZWXQQ0uKdKXb8CQrhFJfnld78RmFxcfgcffi8Xl38b2IAA7cT1r1dEmoIdFQsqVh14cFisPTKRukce5k6T3mGIRbF7E2jqaMMJGFw2XXlc7h7EKWo3btDzvtaPRWAWqj4AdOtIuAUs9cGpqurMRpGnqiHjlIX1r4ziYcS5q8Wh2wM7dftbs6N71GiyQ5cQaJJdDpEmqDhQUDGaDHhQ9h7YoY4NuzMt/p+Wf9b60oJb9lb/94oMsorD4aILkS6y5Nh+rt7pz7C9gUhZYUg5+uzkvh5Vn9GUEoLEa1IwUlKQPosZoAcTvkgZvvRJ86V37Cp6JaxFSvNByvIXrIHUYPombWBg8kak+ACk9BCkpLVIuUH0j13D9bt92dJcSSXC6SJRMbIweSPTtvzItMgfCaCZQkTQfBJYXnacS7esYUysNzcfi+XNjjOsqasgrqWNUw6Zc0Au4IeJ+WezGLp9JVdu8+HlnASSO9s4Cfi1nOeG6AD67V7FpSXxXFOaSf+UDUiJ/vQpjGB6RRKDEryZFuXDX87ksgID9x1LZUBCIAOzNvGI7Tw/oRGNRpqtiwrgKPCV4Rzjd65hbORyHsuIptAuUwb4ym2M376a0Xu8uSwmiG3ILK2pYFRUIFJCEH8oTuOvHeV8WnWCn0qLiHeaWGOoYWC0F1LsKkYX7eJRRwWXZ+5k6o5AbojfxKcVJ9hRX8e6Qwd5qyCZZ85kMjU7ggF7fRkTs453LxzkNIItElhdyt2x6xm2dQUjEgO583Q6oxOC6LvXh75blvJZ7THWdtVxS9Ye+m/1ZVrmTp5qL+OuQynM2OzPLTvC+Kalks+azzM9wpsJUf4M2LaaCUnhPNZykrnHMpiVGMmU7Wt56EQiH3aWCbBh1yomnkzg/vpiRkZvQIoLZcAOf57NzWSD08GTxfsZs3MdI2J9mZG/ndvLchm1L5xBCaFMTNjIOmTeKCtm1Ia1DInyZ0hSKNcVJ3HPoWReOpRHREMTi9NTmbTTj/7bV3JT2lbml6YjpfgiJXoxNSGM11vP8prhAmN3+TNwxzpuPpXKn1pPMDYhGGn7cm5J2UKa0UwVUAh8VVnKmF2BjEqLZGH5UW7MT2ZQXBj994bSO2od79HGK+1nGBKxXIBTOeEMigtj0A4/BsX7M3rLanzqq8gAHi5KYfJuP67aGcjrJw6QhmA2PHMun3Gx/kzY48/8C7k8bytnRv52pKhVjI0JYiMywTYTw7d4MWhvECNjgxiZGIa0zx8pKZCJmZt5X23hm64GZkVtYEB8AIMTw3i67AjP52XxfdEBUgyN1CBTiY2zaPxUnM+sjQGM3rEeKWErUsZOpOzNSBkh+j3sh5Toi5ToL/bT89VdU4JETQ1GSg2mV1oIUloIvdJD6ZcaysiUDYxM3MCA5DCklDCRMpUSjLQvhH5xQYyLCuDGHcF41ZVTjHCpsOgTTtj+sWaDw+H4RV/Y2dnJqVOnyM7O/pdqVk42qXnZpOwXr+m52WTkiOXZ2dnkZGWzPzuHvKxs8rLE59zsPHJycsjMyiEtK5v9BUXkHSwit+AwOfmFZOQfIP1ALukHckk9kENyXhap+/PIKDhIVuEhMguPkJZ/iOS8QpKyD5CZe4Cc3P2/WQsOHiK/oJAD+QfZf6CAvP355OaJ32Tm5pBTtJ/Mw7mkF+SQtj+P9Jz9ZOUWkJd3mPwDR8g/cIQD+4s4sL+QvP355OTnkpOfTXZBFpkHs0nN3U9K3gFScvaTlr2f9Ow8srL3k521n5ycPDIyssjKyiEnJ4/s3BwycrLJyM0kIy+LrP3ZZOVk/mbNyM0kq0d7utu0Zz1+/DgFBQVkZ2eTmppKTk4OBw4c4MSJE9hstovOu9TNaOjBbOjBbnBbfLiXtzc38MCCeUyfcgkOYye4XKSlZCINHMMPIRvRcIBm4dbrb+bxh/7D08GXlx5hxLghJJ4opQMhcicGRzKaZgGtnY0ha5GkQaRkHwJcuGxWYcdnEekCJic8Of875lz1IcYWsJuhqwaunfEBywNP0OyERx4K4LLJr2I0iPSAguxWRoycy5KAfLoUoA7WvRfPJZe9Qb0FzJ1wKFtm1LB3+MuzsR79uXdeyGTcqMWcrBEiTSfTYHKvp6lrE8wFUzMs+WQ7U6/+iJoOwAbp8bVI/R4iPk9XVbTDkd0woe8LlLfrpHIr/On2T5h++Wu028QstM0EE6YtJii0Cq0RXn5sKdfPXUuHLI6ls0xjyLjnic9DV1OE++Z9w/xF3lidYDDD/HvXce/cJcg66cRtCyvLBkDmi482M3bEE5y/IAQYbQ549c0QTCbB3PzgwwSmTX8Zs02Mc3KTTQwfuJDQjQU0dkJQ2GEys6w4rXD+DEyd8hVr1lagOQUb5ONXs5kw+A1eeymIigpY8k0Msg0+WJzK4L6P8v4762msgW8+2ANGKEyCkf0fo6RasBu6uuDu21/mocf8MJhFOz005yseW7gShw1eeTWXfv1e4OO3dlFdBt98FY2hCxbc/x13z/lBXCNmmHf7Zu6buwabKswPM9Kaue2md+nsFP+rshwmj3+ApMTTOGVY/FYai99JxaYItHN/tsysq/9KU5uYpb/v3u+5/15/DB0g2+Hhe71ZMHslmOHe2V9zxeUf06Z/ZzTAZdd8g1dwBZ0GcQ4emhPLnNsihJuDClUH4dYpXxOdUiXEdmT4/L0tTBr+OHVloFnB1gkff7AJYwcE+hwmM9WKbIfSMzBhzAus8zqOQxZAyMdvxHL9zA8wmwRTYcu6U4ySHuRctfDdtdnhw7diGNX/YT5+M4qzp8BrWSpKExzLUZGGPsY5IxidQkBTceceOWw0nFMZ3u9bAv0Evatdx/9++Hg7gwY8yVvvpnGuHL5Zsg2DUQAnsiJAEIddjOo9E5gXBSXQbV35L7AbPKwEuRs8ALpTI3rYBXnW1//Ez8GGn9ffwYbfyz9Z/p1uFLIOLniCah1wcIMNRpw40MWeZKDL2R1pKwhxSZvwDjY7TDhQ+WbtUhrtHViQ6dJ/b7R2oSi6XY2iipy/n9Fo3WPQnnmrvznbpOLp/9vam3BrqTg1B06cujii7EkNMTvtJKaneralKJqH1YVZ9ypHxWAxIiM0IbSe7fLfFGywIsYTQoFHmF3LPcAGNLFOKRrfHs7jikhv+u1ah5SiAw4ZYUhpYUjpek53xiZ6ZW6kV2YEvbM20St9A73S14t1UoMF4JDsi5Tkg5ToRZ9kH/qk+SFlBYuaFoSUHIS0L5TeiesFWJETLsCGnEAG7vqJP2xZwfr6s5QiLPT2aiYWpUVy+c5VTNn8I8udtezFzgE0klU735wtEmDDrjXccyqJVXQRjZMcu4NSIKW5gS2GBnyUFh4qSeOSnV7cuDuAR2PCie1o4DQQ0lTOLZvWMHHbauZX5vBI9SHGxgQxIN6PSYXbuLMyk/HR67g6yp9nj6axUmvlvoNxjNzjixS5jDHxQUzf7sud6715c892UlobKETlp85yrtyyiisiVvFiTiyFdifFwHpHK7fsCebSrav4454w4tFYXn2OGTuE0N746CCmblrDzQE/8kioFyHlJwlsr2RmlDcDtizj1kOxrMTJ384d4oaNvlwbtJLPj+ax6VQxi9eHMHvZF9wY8iMTw39iwtZVXB8bxPfVxziHCOg2nSvh4a1BXB25hkkRK5iVEMa4iOVM3RvIpE1LWVV1goC6MubtiWRqyBoeKUhmHRYWny5kbkQwc4PW8f6BTJZXn2VOZCDXRngzOWgp87N3E4zCF3WlLIzfwnUbV/J0Xgzf1J5kfuIWxmxayV1HEvna0sQdCduZFOnHHzYH8n5uNvtUhTeO5nBF+CqmR65mXNhSpm72YvymNYyNWMNNeyOJROXz8mJmhq1m+nZfRkeuYmZ0AJeFrGTh5lDWXzjPkkP5zI7dICw0A7/nqj3+SFt/oF/UCq6KCeLtmuN82lHO5Vu9mbHDj/lH9vEDHcyKC2VcxHJm7whid3U15zQ4AiwrP8UVkd7M2ruZd+vLeerYfmbsDmXMdm9Gb1nNYtM5XqooZHLkKgZHe3Hl4RjmH01n7oF4Lon2Z9KGZXhXl5OIysMZ0Vy+xYubt/jz1pFsD9jwH6dzGL19FcO3ruDagh3cfSGT0fv8GRbvx5jNawl0drERF5O3+zJg22qm7lvPfRf2My5zE+OyI5h1aA/fYWOp3M410WEMifVjQvpGvtMMROIiDygGLuCkBpXzwBcH0pi13o/R20KQ4jchpW9BytSZDWl+SGl+9EoOoHdSEL2TguiVGEivxECkpECR+pQUIEDG5MBu0CElCCktGCktmN4pwQzdF8bw+DAGxYXQd28YUlJ37ZMQzNBtPly+2Y/V1WcpQaTcOcHDQPvPMBt+3id6TAf+L0tPZsMv+hn3Cn9nEknT8LhX9LSgdAPm3aC5ntqv/YwRTnf2m1sfQutxHAqCae1QVGSlW5C/53p2nNhw4NTZgJr7uN1DWzcF+iKhCFX0D+5xh15Vfbzd879rPRpF7LNbM8mttfT3699vU6fT+Yvzarfbf3X8I4kX9xc9BtE9xZ10xUG7zcKFC+WMGjWCsLAw8c9VBw6bnVl3P8gdix4HtQusTTxw3wIefPApNA1Uh0LNyXymjBvCvsOlgrat78/u0AMOLLgcbYAD2eXoHhw4wW4BBQNnL1Qxddwr+KyowmQXgQ2dMGvSM3gHJHCuBQaMfYXlvrXYdTFArHDXnX/mpueW0QLQDt4venPTwuVU6BdRVztcNfMLfNdUC2qmAw7vhVGDnuREp5lO4FSCjWnSo5ypErRGbPD9R2u57aGlNCKCd0WGCTM/4+tlxeJCscLxXVYm93qS8w1iUNF4VmPamHn8GJBNB+Lic9rgkpnvs8brHJjgr/e/w9V3LaNVBYxgOGtg5JT32ZSgojihq8HAqGF/JilNpOSa7ODjdY6rr3wHk0ncRCg6PkQbDY3VDO9/D1vW1+GUwWDvkZaigqkTPv8hi7sWLaWtQ2/3Trhp5n+w3D+JNkSwaTKLBmtrgslXfs2K4HqcMmh2+OztWBbOWYrLIaj+Foeg2H/+6Xbu+uO7IiPGhMf1oCCug3FDFnG6SQiCtXTC6DHziIlTsNrA0gKRG/KZct1zVJvhldcP8sD8CCHSqIJqMNB8rpMxI/5MWhZ0msDsgODgTi67bDGtFqHs/OF7e3nzb7EoLkH9f/T+78hN6cRhEdfPnfNXkZ4PHTaQZShIk3nkni9AhfPlzYwb/TIpyWCRoakdAr1qmHvdak5lweWXPMmysCJaEOwP2QmTZ7zJutBSGk1iAnHhfSHcO9ePLv1h01ICM0c8y968WjqAsvMKl09dRIhPtmBLyGI7iqaPN23C1MWpiP1fMvlvbNhQQ7tZpAnNnP4Nf/tLIrIdIWdRDZf0f5iEQuGdrNnh63cjuOnWt7C6U1jsgAUKUxqRBj3O4RoBhLXY9AG87ADVQlmZkX6jPmF1oIrT/VQ3wMqPgrjjwZU0IkAKxZ3fTfdr93Ok59NK7X5g/ZeVHkH/RfuRu5dfVH5r+e/l9/J/V/69zAa6Byg97rWeAb/Sc+Wfg2mKJvLEdDDOocg4NBdOREqG2WlFQcXlcuBy6kG97NKRRQFuCJtfFXeeqqKIPl1WXQitGwWn7t1rsZg8B+Fy2kFTRWqmfs86XVacsg0XThRkXAif8zffXSzYDQ6XZwClOpSfsZZ+hZT0WwNN/osfQ79R/h7Y4B5wXgzMiPYSaRVinQ4ES+DLonyu2BrEqJQIAS7kbRKznPqspZQWgpQaKvK6U0LFLGVyiAAMErtF4Ty6Dikhgkad4oeUFipqSqgINpLXixzxOG+kvHCkhNUMTPRmQtRybo5aS1DHWY4h0iRinAaeKohlYsRSJu9cyfyCaN45lcfLGXF4NZ/ngwuHGRX+PZPifRi1ZRk3RgfzxK4Ing0PIbC8mLdSoli41Y+7o/y5dttqLgn4kuvXL+PPiVuJd7RzHAg4e5QnIvyZG76GV46m8nljMddv82ZmxEruzdzG27WHWZS2hTu2+vDakVRWm6t4cn8MM9f/xMyNK7hy/XKuDfqJ+WFefJC6h+jmGk4CYXWlvJq4lQdDVvNlZhyHZBsXgKi2Gt5NjebRCF8+ykkg1tZKRFsVCzb7cNnqT7k5fAW3+n3PM2FefBW7g82njrKj8gxfZ+/jz1uD+TY/jQzNyraacr5NSeDLhN1sKjlG9JmTrEzYw4fbN/J16h4+TIzi49Q9rCrKJbG9jkqE6GZ2cz2hxwr4PCmGz9Pj+Dw9jo9SYvgwNYYfD6ax6/xpsg0t/JSVwudJe/A9dpA0m4HEjiZWZKXyXUIM648dYsf5M4QVF7E0K4klmfvYWnuOQlSSDS2syktnxf5UdlafJb6phsDiQ6wsyiO8tozYjgZ21lfwedpefshJYXtpCXmGDmLqKvg+M5F3o7fwaeoe3kuO5pvDmXyan8Ka0iLSFDNb6y/wYeoe3suI5fWkXXx2IIm39+7kq9Q4omsvEHnuFG8lbOeF+Eie3b2eZ+M3sWh3EPfvCuD9wiRCWstZUV7EczHh3B/uxfelBURa6vnmRA6LNq3j6cgANpaeoAw4gUbwmaM8vSWI5+M341NXytJzR3hgRyCz/L7lvqhAVnWW8UbhPu7Zso7bt3jx+ok0dmHj67KDzNnoxf2RPiw7eoB9spGVZ49yx7rvmBewklWlh8kGklB55VgaEwK+YNKmpUyJWsmQzd8xIcaL8ZErmbJhFf5YWKcamLU7hPEbVnBdQjiLO8qYUxjPpTGBTNrpw9vWSr5Um5mVtIkxUd5MjvPn9uytLC7P47tT+4lpreI8Ytx2Ao3vj+Zz4/Ygxu3R0x4yQ5FyNgjwLzUEaa+/YO4kBDIgPoD+eu2bEEBvHXjokxriYTNIaSGCpZSug4qpweJ+3xtC7/gQeu/dQK+kcKTkDUjpG+iTuZEhccFM2+bHysozlOvPIpdLz7X+/2Ad/I/Krzzaf3uFv7ONX9vWb1XlV5b9fDv/7Gu3dbV68SFeBMrzK+zb7rb/z/Rl/7C9/h8WyY2K/OqgxfOHPREE0dHRSL0k8g8VIit20GyYTUbeWbKa6dfcCu2V0FDK3bNnM+eeB3DoGzdWnGB0P4kdaYW0IOIdl+L07MJgbAbMmIw1oOoijmJSHjSV1s4Sjpw4jiQ9SEGBSCe1uoAOuPPKP+MftIuYzFKkAU8Tnwtmp04Lt8N33wbS+4bnqFaBavD564/M/WsQxxGyAJoC0ye9SbB3jWAEWOFEksKogQ9y3GqhFTgW1cL1fZ7hQpMQpcKosPSD75n92BJK7SJwb2xWGX3pp2zc6tTVHDU6C2G8tJD6dnHM2XvLmDDij2SfsVLlEm3f3gpTZn7C5ggTNMFf7n+NBc9t5IJRHH/b6WZGXPIByYdFYx3PL0CSHmbQ0PfoM/he+g68jWFDnmb61L9RWmrC5ZY/VcHhauDo0SLGDXmAxBg7RpNbSsOFE0GhtXTCX9/eyi2LvhW2ng6gHaYNvxPvTTlUOiFsp4leff7EiL7XMm3yfKRej/Ktf6VwbHDC+29EcP+9XyIrbhBOoIJvvrmavzz7Ew6hTYhiksEJFw7aGdn/TkqaBFqakHEaqdcNjBn/JsOGPs/oQbczbOgspIm3cbgJPv6slDtv9cbqQBygUs+ZvAP0lR6iz8A3GDn5GSTpZvoPfpqxE5+htt1KmxmumPEOOalgtUBLE8y+/nVcRnFdHT3exOU3vk3hGaHrYTFD8Ip8dgYfRbVp5OWK663vwJfpN2oeo6Y8RD/pScb0eZ59GysY2vcWdhY0UQe06//vkmkv4rehVLBfNLjnnuU88kigEBrV4Fy+yvWXPk98XhUtQFZuDZI0nYO5jYL1rwo01KWJ8Xyg92kkaR59Bk9h5ISrGTv2L/z44yFBvdVg2vRP+OuzMR6VmeaDcOXYx9m6v4Z6xPWz9J0wHnluDc0KdBosAkzoUjmcVMbgUc9S0grnbQIMQ0H4gGpmzpR3MPSyL1ni3YzFiKAsdMmseHc1V8z9nCr9/uku4ql4sT/wz7UP9PJv7qR+L7+X/6ry7wQb/qXSo493OZzY7XbP4rqGWiK3b0ZDFWLN+v3bVFPjEcdxGIx4BKZlRQcPQJGdgkmBisvl0i29VB140HApTo81snuHqqwIQMPlwJ1W4XBZMZo6KDlTjMnSpQMWor/uMlj+RzxD/q5mA/wKAKIKgTEdbLA5Ndo0oY3w2cFcZm70ZXTCBqTkMKSscBGApAfrNQQpI5Re6aH0yQijX3oY/VJD6ZcSQr/EIBGExPnRZ48vvWN8kPb4MCAthIHpoQxP3ciI5HCGJYQxODaYfrEh9EkIpk9yKCPyIugfvZrx0WuZueUn5u5YS1DTSQpxcgrY09nMcxlRXL7+R8YFfsXl4cuYt82fe0PX8PWpfD48c4BZO9dxU3IY0zYs5ebwVTyzKYi/RYSwpriAt1KieGp3GE/Fb+RPsetZuN2P5+I28fXBNFIs7RQDsRfOsTYzlSVpCfiXHWOrpYGPCpJ4Lzee707ksrGtguUn8/kyPwXv8mNEO9tYXX6Er45msuR4DktP5LH8WB6+Jw6yraKU/WYDpUChrZO0xioSa8o52NXKeTSqgJMuC/kdTZxSbRyVzZQDp4EkcyOprnbykUl1tHJctVLislKBSiNi4qQGlSaEsGcbUItGtabQrH/fgNCzqETjvOygQnZSrSk0IvSTWvX1atFo0N+7f1eLRv3P1nP/zr2/RqBZf18pO2nQl1UpLqpVmVVcBUsAACAASURBVGaESGw9cMFp9/y2WpU577DRoH9u6bHvth61WpU926lGBMenZRvnkKnXt3tGsVOrL68HylEow3XR95XAMeycROMkCkewcRKF84j0nAKHgbS2Wo5howw47DCS0VrL/q4WTuGkAriAxlFzJ7HnThFfdZZCxUS6pZnw8mOEnT/GhqpiUjEQUXea4LIigs4eZlt9KUXIJHU1sGJ/Kqv3Z7C76hyFLitx1Rf4Li6apXtjiaosI1+1sR8Z38piXkjexjMZ23k0cyt3JgRxT+J6FsVu5IHdGwm2teFnbuSx+O3cty2EJ5N3s6TuDK8VZXF/fCS3bg3gvcqjfFB/iht3BjAjdDlTQ35gRvgS7ory4sHwNfyUm0xRl5F6/VpbdewQt28NYGqUD/32eCHFr0Pa60evfQEM2hPI4F1+DIv2Z1iML8P2+DE0zp/hCYEM3RfE0KRgBqUEI+3xQopbh5TgjbTPFynJDynFX6+B9MoKR0oJo9++9Qzau4F++8KR9upgZWooQ+ODmLHDj+UVJzkLtGsasuyeiP594ub38s+Xfwg2OK3C2tLYaUBRFIqKihgwaCBZebkInr6YlXjoL28yaea1OBrLwdXKHbfcwsOPPiNCDbuD9nNHuHzCcPYePEkrgsysoWIyufS+VhczwIzLbd/gApvBrRLfSN7BHMaMfpT4BAtGXawRA9ww9TECw+JIOlhP79EvkLwfGtrE7zHB+++sYNjsF6hXgQbY8E4QNzz4E+cAIyqqAhNHvUioX42HTXEs2cXoQQ9Q0NZJK1CWZOUy6SFOnNPBhi744rUvuOWBz2gE7KqY4R07/WO+/rFEHJwRDm6tY5h0D3WtYHDBiQMtDOt9DRF7Szw2MqoLxk99H9919dABT857mWvv/pE2FTBD0+lWxl/2PpvirFjNDrL2ZXD59PeIixeuFY1tIg40GXS9MEXMiCsOAAuHCo8yot8CDmSIWXOHBu12ofitWBVUJ7z+aRxzH1suGCciiZQbpj1C2K7DJB1zMvHy91m1qhjsggky/spPWBHWgEVPjf/ywyiee2otNl340omwAv3iiw3ccuNLaE6w6uCRs10jL/oCk0cu4Fyr6MCyD1YwdPhsklPB3CUuK4dDdJoNwNvvF/LoQxFYnGAyd4DSzLH0TCaMfpptUS5MCrRZBNPD7IQWiwOLCtfOepPq8yK1JCvjJH+6/1MUq0gXKCyqYNIfnqPaKEQ2Gxs1Ftz+No4WQIXs7EMMHvQwGXlgUMUsflenuKZOZZsZM/Q2duTW0IQuEumCCZP+g9X+R7AAXQosXLSGm2/5HLsmUho6z8OEQQtIKmikAyg6ZmTM0NsoyG7CYgCXsxs9PXvOyLgRzxAeVolFBpsKM2a8ydq1J2k2QJcDvvliN9de+QbNTWBshh/fTWLUgLs43FxLBy7ogu/fDGHWXV/RqJ/a9qYSsFqoPlRLr
96
    DIFF
97

  
98
  def test_should_not_take_more_than_1_second_to_format_a_long_text_without_email_address_at_the_end
99
    start_time = Time.now
100
    formatted_text = Redmine::WikiFormatting::NullFormatter::Formatter.new(COMPLEX_INPUT).to_html
101
    elapsed_time = Time.now - start_time
102

  
103
    assert !formatted_text.blank?
104
    assert_operator elapsed_time, :<, 1, "WikiFormatting took more than 1 second (#{elapsed_time} seconds)"
105
  end
106

  
107
  def test_should_not_take_more_than_1_second_to_format_a_long_text_with_email_address_at_the_end
108
    input = COMPLEX_INPUT + "test@example.com"
109

  
110
    start_time = Time.now
111
    formatted_text = Redmine::WikiFormatting::NullFormatter::Formatter.new(input).to_html
112
    elapsed_time = Time.now - start_time
113

  
114
    assert !formatted_text.blank?
115
    assert_operator elapsed_time, :<, 1, "WikiFormatting took more than 1 second (#{elapsed_time} seconds)"
116
  end
117

  
92 118
end
(1-1/2)