/** * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.editor.codecompletion.templates; import junit.framework.TestCase; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.templates.Template; import org.eclipse.jface.text.templates.TemplateBuffer; import org.eclipse.jface.text.templates.TemplateContextType; import org.python.pydev.editor.autoedit.TestIndentPrefs; public class PyDocumentTemplateContextTest extends TestCase { public void testApply() throws Exception { Document doc = new Document("" + "\n" + ""); PyDocumentTemplateContext context = new PyDocumentTemplateContext(new TemplateContextType(), doc, 0, 0, null, new TestIndentPrefs(true, 4)); Template template = new Template("", "", "", "if a:\n\tpass", true); TemplateBuffer buffer = context.evaluate(template); assertEquals("if a:\n pass", buffer.getString()); context = new PyDocumentTemplateContext(new TemplateContextType(), doc, 0, 0, null, new TestIndentPrefs(false, 4)); template = new Template("", "", "", "if a\n print 'a: '", true); buffer = context.evaluate(template); assertEquals("if a\n\tprint 'a: '", buffer.getString()); doc = new Document("" + "\n\t" + ""); context = new PyDocumentTemplateContext(new TemplateContextType(), doc, doc.getLength(), 0, "\t", new TestIndentPrefs(false, 4)); template = new Template("", "", "", "if a\n print 'a: '", true); buffer = context.evaluate(template); assertEquals("if a\n\t\tprint 'a: '", buffer.getString()); doc = new Document("" + "\n " + ""); context = new PyDocumentTemplateContext(new TemplateContextType(), doc, doc.getLength(), 0, " ", new TestIndentPrefs(true, 4)); template = new Template("", "", "", "if a\n\tprint 'a: '", true); buffer = context.evaluate(template); assertEquals("if a\n print 'a: '", buffer.getString()); //let's check if we have a template with \n and a document with \r\n (it should be applied with \r\n) doc = new Document("" + "\r\n " + ""); context = new PyDocumentTemplateContext(new TemplateContextType(), doc, doc.getLength(), 0, " ", new TestIndentPrefs(true, 4)); template = new Template("", "", "", "if a\n\tprint 'a: '", true); buffer = context.evaluate(template); assertEquals("if a\r\n print 'a: '", buffer.getString()); //let's check if we have a template with \r\n and a document with \r (it should be applied with \r) doc = new Document("" + "\r " + ""); context = new PyDocumentTemplateContext(new TemplateContextType(), doc, doc.getLength(), 0, " ", new TestIndentPrefs(true, 4)); template = new Template("", "", "", "if a\r\n\tprint 'a: '", true); buffer = context.evaluate(template); assertEquals("if a\r print 'a: '", buffer.getString()); } }