View | Details | Raw Unified | Return to bug 376939
Collapse All | Expand All

(-)a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaClient.java (-13 lines)
Lines 50-56 Link Here
50
import org.apache.commons.httpclient.HttpStatus;
50
import org.apache.commons.httpclient.HttpStatus;
51
import org.apache.commons.httpclient.NameValuePair;
51
import org.apache.commons.httpclient.NameValuePair;
52
import org.apache.commons.httpclient.RedirectException;
52
import org.apache.commons.httpclient.RedirectException;
53
import org.apache.commons.httpclient.URI;
54
import org.apache.commons.httpclient.methods.GetMethod;
53
import org.apache.commons.httpclient.methods.GetMethod;
55
import org.apache.commons.httpclient.methods.HeadMethod;
54
import org.apache.commons.httpclient.methods.HeadMethod;
56
import org.apache.commons.httpclient.methods.multipart.FilePart;
55
import org.apache.commons.httpclient.methods.multipart.FilePart;
Lines 2352-2369 Link Here
2352
			}
2351
			}
2353
			return newText;
2352
			return newText;
2354
		}
2353
		}
2355
	}
2356
2357
	public static boolean isValidUrl(String url) {
2358
		if (url.startsWith("https://") || url.startsWith("http://")) { //$NON-NLS-1$//$NON-NLS-2$
2359
			try {
2360
				new URI(url, true, "UTF-8"); //$NON-NLS-1$
2361
				return true;
2362
			} catch (Exception e) {
2363
				return false;
2364
			}
2365
		}
2366
		return false;
2367
	}
2354
	}
2368
2355
2369
	private class HtmlInformation {
2356
	private class HtmlInformation {
(-)a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositorySettingsPage.java (-5 lines)
Lines 610-620 Link Here
610
	}
610
	}
611
611
612
	@Override
612
	@Override
613
	protected boolean isValidUrl(String url) {
614
		return BugzillaClient.isValidUrl(url);
615
	}
616
617
	@Override
618
	protected Validator getValidator(TaskRepository repository) {
613
	protected Validator getValidator(TaskRepository repository) {
619
		return new BugzillaValidator(repository);
614
		return new BugzillaValidator(repository);
620
	}
615
	}
(-)a/org.eclipse.mylyn.oslc.ui/src/org/eclipse/mylyn/internal/oslc/ui/OslcRepositorySettingsPage.java (-12 lines)
Lines 104-121 Link Here
104
	}
104
	}
105
105
106
	@Override
106
	@Override
107
	protected boolean isValidUrl(String url) {
108
		if (url.startsWith(URL_PREFIX_HTTPS) || url.startsWith(URL_PREFIX_HTTP)) {
109
			try {
110
				new URL(url);
111
				return true;
112
			} catch (MalformedURLException e) {
113
			}
114
		}
115
		return false;
116
	}
117
118
	@Override
119
	public void applyTo(TaskRepository repository) {
107
	public void applyTo(TaskRepository repository) {
120
		repository.setProperty(IOslcCoreConstants.OSLC_BASEURL, baseText.getText());
108
		repository.setProperty(IOslcCoreConstants.OSLC_BASEURL, baseText.getText());
121
		super.applyTo(repository);
109
		super.applyTo(repository);
(-)a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositorySettingsPageTest.java (-3 / +15 lines)
Lines 215-220 Link Here
215
		}
215
		}
216
	}
216
	}
217
217
218
	public void testValidUrl() throws Exception {
219
		TaskRepository repository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND, "http://localhost/");
220
		MockRepositorySettingsPage page = new MockRepositorySettingsPage(repository);
221
		assertFalse(page.isValidUrl(""));
222
		assertFalse(page.isValidUrl("http:/google.com"));
223
		assertFalse(page.isValidUrl("http:/google.com/"));
224
225
		assertTrue(page.isValidUrl("http://google.com"));
226
		assertTrue(page.isValidUrl("https://google.com"));
227
		assertTrue(page.isValidUrl("http://mylyn.org/bugzilla34"));
228
		assertTrue(page.isValidUrl("http://www.mylyn.org/bugzilla34"));
229
	}
230
218
	private class MockRepositorySettingsPage extends AbstractRepositorySettingsPage {
231
	private class MockRepositorySettingsPage extends AbstractRepositorySettingsPage {
219
232
220
		public MockRepositorySettingsPage(TaskRepository taskRepository) {
233
		public MockRepositorySettingsPage(TaskRepository taskRepository) {
Lines 227-235 Link Here
227
		}
240
		}
228
241
229
		@Override
242
		@Override
230
		protected boolean isValidUrl(String name) {
243
		protected boolean isValidUrl(String url) {
231
			// ignore
244
			return super.isValidUrl(url);
232
			return false;
233
		}
245
		}
234
246
235
		@Override
247
		@Override
(-)a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java (-1 / +12 lines)
Lines 20-25 Link Here
20
import java.util.List;
20
import java.util.List;
21
import java.util.Set;
21
import java.util.Set;
22
22
23
import org.apache.commons.httpclient.URI;
23
import org.eclipse.core.runtime.CoreException;
24
import org.eclipse.core.runtime.CoreException;
24
import org.eclipse.core.runtime.IAdaptable;
25
import org.eclipse.core.runtime.IAdaptable;
25
import org.eclipse.core.runtime.IProgressMonitor;
26
import org.eclipse.core.runtime.IProgressMonitor;
Lines 1317-1323 Link Here
1317
	/**
1318
	/**
1318
	 * @since 2.0
1319
	 * @since 2.0
1319
	 */
1320
	 */
1320
	protected abstract boolean isValidUrl(String url);
1321
	protected boolean isValidUrl(String url) {
1322
		if (url.startsWith(URL_PREFIX_HTTPS) || url.startsWith(URL_PREFIX_HTTP)) {
1323
			try {
1324
				new URI(url, true, "UTF-8"); //$NON-NLS-1$
1325
				return true;
1326
			} catch (Exception e) {
1327
				return false;
1328
			}
1329
		}
1330
		return false;
1331
	}
1321
1332
1322
	private void updateHyperlinks() {
1333
	private void updateHyperlinks() {
1323
		if (getRepositoryUrl() != null && getRepositoryUrl().length() > 0) {
1334
		if (getRepositoryUrl() != null && getRepositoryUrl().length() > 0) {
(-)a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/ui/TracRepositorySettingsPageTest.java (+18 lines)
Lines 47-52 Link Here
47
			super.applyValidatorResult(validator);
47
			super.applyValidatorResult(validator);
48
		}
48
		}
49
49
50
		@Override
51
		protected boolean isValidUrl(String name) {
52
			return super.isValidUrl(name);
53
		}
54
50
	}
55
	}
51
56
52
	private MyTracRepositorySettingsPage page;
57
	private MyTracRepositorySettingsPage page;
Lines 172-175 Link Here
172
		assertNull(page.getTracVersion());
177
		assertNull(page.getTracVersion());
173
		assertEquals(IMessageProvider.ERROR, page.getMessageType());
178
		assertEquals(IMessageProvider.ERROR, page.getMessageType());
174
	}
179
	}
180
181
	public void testValidUrl() throws Exception {
182
		assertFalse(page.isValidUrl(""));
183
		assertFalse(page.isValidUrl("http:/google.com"));
184
		assertFalse(page.isValidUrl("http:/google.com/"));
185
		assertFalse(page.isValidUrl("http://google.com/"));
186
		assertFalse(page.isValidUrl("http://google.com/foo /space"));
187
188
		assertTrue(page.isValidUrl("http://google.com"));
189
		assertTrue(page.isValidUrl("https://google.com"));
190
		assertTrue(page.isValidUrl("http://mylyn.org/trac30"));
191
		assertTrue(page.isValidUrl("http://www.mylyn.org/trac30"));
192
	}
175
}
193
}
(-)a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/TracRepositorySettingsPage.java (-10 / +3 lines)
Lines 13-19 Link Here
13
package org.eclipse.mylyn.internal.trac.ui.wizard;
13
package org.eclipse.mylyn.internal.trac.ui.wizard;
14
14
15
import java.net.MalformedURLException;
15
import java.net.MalformedURLException;
16
import java.net.URL;
17
16
18
import org.eclipse.core.runtime.CoreException;
17
import org.eclipse.core.runtime.CoreException;
19
import org.eclipse.core.runtime.IProgressMonitor;
18
import org.eclipse.core.runtime.IProgressMonitor;
Lines 124-138 Link Here
124
	}
123
	}
125
124
126
	@Override
125
	@Override
127
	protected boolean isValidUrl(String name) {
126
	protected boolean isValidUrl(String url) {
128
		if ((name.startsWith(URL_PREFIX_HTTPS) || name.startsWith(URL_PREFIX_HTTP)) && !name.endsWith("/")) { //$NON-NLS-1$
127
		boolean isValid = super.isValidUrl(url);
129
			try {
128
		return isValid && !url.endsWith("/"); //$NON-NLS-1$
130
				new URL(name);
131
				return true;
132
			} catch (MalformedURLException e) {
133
			}
134
		}
135
		return false;
136
	}
129
	}
137
130
138
	public Version getTracVersion() {
131
	public Version getTracVersion() {

Return to bug 376939