Java tutorial
/* * Symphony - A modern community (forum/SNS/blog) platform written in Java. * Copyright (C) 2012-2018, b3log.org & hacpai.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.b3log.symphony.util; import java.io.FileReader; import java.net.URL; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.testng.Assert; import org.apache.commons.io.IOUtils; import org.b3log.latke.Latkes; import org.testng.annotations.Test; /** * Markdown utilities test case. * * @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://zephyr.b3log.org">Zephyr</a> * @version 2.4.1.7, May 2, 2017 * @since 0.1.6 */ public class MarkdownsTestCase { static { Latkes.initRuntimeEnv(); } @Test public void jsoupParse() { final Document parse = Jsoup.parse("<p><strong><br>??????</strong></p>\n" + "<hr>\n" + "<p> <br> -? java <br> -? javascript<br> -???????<br> -?blog?<br> - <br> - </p>\n" + "<p> ???</p>\n" + "<p>1java ???a1?????<br> A ) a1.java B) a1.class C) a1 D) </p>\n" + "<p>2 Java<br> A) ????<br> B) ?????<br> C) ????<br> D)?</p>\n" + "<p>3 mainJava??main?<br> A)public static void main<br> B)public static void main String[] args <br> C)public static int mainString [] arg <br> D)public void mainString arg[] </p>\n" + "<p>4 Java??????????????????? <br>A)?? B) C)? D)Java??</p>\n" + "<p>5 A?BB?CJava?? </p>\n" + "<pre><code>1. A a0=new A(); \n" + "</code></pre><ol>\n" + "<li>A a1 =new B(); </li>\n" + "<li>A a2=new C();<br> <br>A)?1<br>B)1?23<br>C)1?2?32?3?<br>D)1?23 </li>\n" + "</ol>\n" + "<p>6 ? <br> 1 String s1=a?+b?;<br> 2 String s2=new Strings1<br>3 ifs1= =s2<br>4 System.out.println(= = is succeeded?);<br>5 if (s1.equals(s2))<br>6 System.out.println(.equals() is succeeded?);<br>A)46<br>B)46?<br>C)64?<br> D)4?6? </p>\n" + "<p>7 ??18??</p>\n" + "<p>A)int B) char C) varchar D)text </p>\n" + "<p>8?<br> A.)? B) C) D) </p>\n" + "<p>9 HTML?Javascript?<br> A)<javascript></javascript><br> B)<script></script><br> C) <head></head><br> D) <body </body></p>\n" + "<p>10 ?</p>\n" + "<p><input id=\"btnGo\" type=\"button\" value=\"?\" class=\"btn\"/><br>A) $("#btnGo")<br>B) $(".btnGo")<br>C) $(".btn")<br> D) $("input[type='button']")</p>\n" + "<p></p>\n" + "<p> <br>-Java?</p>\n" + "<p>-java?listMap,Set, Queue</p>\n" + "<p>-??<br>Spring:<br>springmvcstruts2):<br>Hibernatemybatis):<br>Jquery:<br>Bootstrap</p>\n" + "<p>-Javascript??</p>\n" + "<p>-sql<br>Select * from Table:<br>Where :<br>Having:<br>Group by:<br>Order by:</p>\n" + "<p> ?<br><br>-</p>\n" + "<p>-java(SSH)</p>\n" + "<p>-?</p>\n" + "<p>-?:</p>\n" + "<p>-?</p>\n" + "<hr>\n"); final String html = parse.html(); System.out.println(html); Assert.assertTrue(html.contains("<body < body>")); // Jsoup bug } /** * Tag test. */ @Test public void tag() { if (Markdowns.MARKED_AVAILABLE) { final String kbd = "<kbd>DV</kbd>"; String html = Markdowns.toHTML(kbd); html = Markdowns.clean(html, ""); Assert.assertTrue(html.contains("<kbd>") && html.contains("</kbd>")); } } /** * XSS test. */ @Test public void clean() { if (Markdowns.MARKED_AVAILABLE) { final String md = "<a href='data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K'>a link</a>"; final String html = Markdowns.toHTML(md); final String securedHTML = Markdowns.clean(html, ""); Assert.assertFalse(securedHTML.contains("href")); } } /** * Auto space test. */ @Test public void space() { if (Markdowns.MARKED_AVAILABLE) { final String md = "SymJava??[Sym](https://hacpai.com)?"; final String html = Markdowns.toHTML(md); Assert.assertEquals(html, "<p>Sym Java ??<a href=\"https://hacpai.com\"> Sym</a>?</p>"); } } /** * email test not link to User page if the name is in email address */ @Test public void linkToHTML() { if (Markdowns.MARKED_AVAILABLE) { String md = "test@test.com"; String html = Markdowns.toHTML(md); Assert.assertEquals(html, "<p>test@test.com</p>"); } } /** * Workaround for https://github.com/sirthias/pegdown/issues/229. */ @Test public void toHTML1() { if (Markdowns.MARKED_AVAILABLE) { String md = "Sym** _Java_ ?**"; String html = Markdowns.toHTML(md); Assert.assertEquals(html, "<p>Sym<strong> <em>Java</em> ?</strong></p>"); md = "[link](https://github.com/b3log/symphony/blob/master/README_zh_CN.md)"; html = Markdowns.toHTML(md); Assert.assertEquals(html, "<p><a href=\"https://github.com/b3log/symphony/blob/master/README_zh_CN.md\">link</a></p>"); md = "```\n" + "server {\n" + " listen 443 ssl;\n" + " server_name usb.dev;\n" + "\n" + " access_log off;\n" + "\n" + " ssl on;\n" + " ssl_certificate /etc/nginx/ssl/server.crt;\n" + " ssl_certificate_key /etc/nginx/ssl/server.key;\n" + " ssl_client_certificate /etc/nginx/ssl/ca.crt;\n" + " ssl_verify_client on;\n" + "\n" + " location / {\n" + " proxy_pass http://backend$request_uri;\n" + " }\n" + "}\n" + "```"; html = Markdowns.toHTML(md); Assert.assertEquals(html, "<p></p><pre><code>server {\n" + " listen 443 ssl;\n" + " server_name usb.dev;\n" + "\n" + " access_log off;\n" + "\n" + " ssl on;\n" + " ssl_certificate /etc/nginx/ssl/server.crt;\n" + " ssl_certificate_key /etc/nginx/ssl/server.key;\n" + " ssl_client_certificate /etc/nginx/ssl/ca.crt;\n" + " ssl_verify_client on;\n" + "\n" + " location / {\n" + " proxy_pass http://backend$request_uri;\n" + " }\n" + "}\n" + "</code></pre><p></p>"); md = "?study_1?index.html,*??js?type*\n" + "github?https://github.com/Userwu/study_react"; html = Markdowns.toHTML(md); Assert.assertEquals(html, "<p>? study_1 ? index.html ,<em>?? js ? type</em><br>github ?<a href=\"https://github.com/Userwu/study_react\">https://github.com/Userwu/study_react</a></p>"); } } /** * Link test. */ @Test public void toHTML() { if (Markdowns.MARKED_AVAILABLE) { String md = "[b3log](http://b3log.org)"; String html = Markdowns.toHTML(md); Assert.assertTrue(html.contains("href")); md = "[b3log](b3log.org)"; html = Markdowns.toHTML(md); Assert.assertTrue(html.contains("href")); } } /** * Standard syntax test. * * @throws java.lang.Exception exception */ @Test public void toHtml0() throws Exception { if (Markdowns.MARKED_AVAILABLE) { final URL mdResource = MarkdownsTestCase.class.getResource("/markdown_syntax.text"); final String md = IOUtils.toString(new FileReader(mdResource.getPath())); final String html = Markdowns.toHTML(md); //System.out.println(html); } } }