Skip to content

Commit

Permalink
web wip, feature header, env switching
Browse files Browse the repository at this point in the history
  • Loading branch information
ptrthomas committed May 1, 2017
1 parent 1ff1d8d commit d1f0a90
Show file tree
Hide file tree
Showing 10 changed files with 76 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public ScriptValue getConfiguredHeaders() {
}

public ScriptContext(ScriptEnv env, ScriptContext parent, Map<String, Object> arg) {
this.env = env.refresh();
this.env = env.refresh(null);
logger = env.logger;
if (parent != null) {
vars = Script.clone(parent.vars);
Expand Down
10 changes: 5 additions & 5 deletions karate-core/src/main/java/com/intuit/karate/ScriptEnv.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ public static ScriptEnv init(String env, File featureFile, String[] searchPaths,
new HashMap<>(1), logger);
}

public ScriptEnv refresh() { // immutable
String karateEnv = StringUtils.trimToNull(env);
public ScriptEnv refresh(String in) { // immutable
String karateEnv = StringUtils.trimToNull(in);
if (karateEnv == null) {
karateEnv = StringUtils.trimToNull(System.getProperty("karate.env"));
if (karateEnv != null) {
logger.debug("obtained 'karate.env' from system properties: {}", karateEnv);
karateEnv = StringUtils.trimToNull(env);
if (karateEnv == null) {
karateEnv = StringUtils.trimToNull(System.getProperty("karate.env"));
}
}
return new ScriptEnv(karateEnv, featureDir, featureName, fileClassLoader, callCache, logger);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,16 @@ public class FeatureWrapper {
private final CucumberFeature feature;
private final List<FeatureSection> featureSections;

private final ScriptEnv scriptEnv;
private ScriptEnv scriptEnv;

public ScriptEnv getEnv() {
return scriptEnv;
}

public void setEnv(ScriptEnv scriptEnv) {
this.scriptEnv = scriptEnv;
}

public static FeatureWrapper fromFile(File file, ClassLoader classLoader) {
try {
String text = FileUtils.readFileToString(file, "utf-8");
Expand Down
8 changes: 5 additions & 3 deletions karate-demo/src/test/java/karate-config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
function() {
karate.configure('connectTimeout', 5000);
karate.configure('readTimeout', 5000);
var port = karate.properties['demo.server.port'];
if (!port) port = 8080;
karate.configure('readTimeout', 5000);
var port = karate.properties['demo.server.port'];
if (!port) {
port = karate.env == 'web' ? 8090 : 8080;
}
return { demoBaseUrl: 'http://127.0.0.1:' + port };
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,15 @@ public KarateSession createSession(String envString, File featureFile, String[]
WebSocketLogAppender appender = createAppender();
ScriptEnv env = ScriptEnv.init(envString, featureFile, searchPaths, appender.getLogger());
FeatureWrapper feature = FeatureWrapper.fromFile(featureFile, env);
return createSession(feature, appender);
return initSessionBackend(feature, appender);
}

public KarateSession updateSessionEnv(String sessionId, String envString) {
KarateSession session = getSession(sessionId);
FeatureWrapper feature = session.getFeature();
ScriptEnv env = feature.getEnv().refresh(envString);
feature.setEnv(env);
return initSessionBackend(feature, session.getAppender());
}

public KarateSession createSession(String envString, String featureText) {
Expand All @@ -56,7 +64,7 @@ public KarateSession createSession(String envString, String featureText) {
WebSocketLogAppender appender = new WebSocketLogAppender(sessionId);
ScriptEnv env = ScriptEnv.init(envString, new File("."), new String[]{"src/test/java"}, appender.getLogger());
FeatureWrapper feature = FeatureWrapper.fromString(featureText, env);
return createSession(feature, appender);
return initSessionBackend(feature, appender);
}

private WebSocketLogAppender createAppender() {
Expand All @@ -65,7 +73,7 @@ private WebSocketLogAppender createAppender() {
return new WebSocketLogAppender(sessionId);
}

private KarateSession createSession(FeatureWrapper feature, WebSocketLogAppender appender) {
private KarateSession initSessionBackend(FeatureWrapper feature, WebSocketLogAppender appender) {
KarateBackend backend = CucumberUtils.getBackend(feature.getEnv(), null, null);
KarateSession session = new KarateSession(appender.getSessionId(), feature, backend, appender);
sessions.put(session.getId(), session);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected boolean isClickable() {
@Override
protected void onClick(AjaxRequestTarget target) {
FeatureFileEnv ffe = node.getObject();
KarateSession session = service.createSession("dev", ffe.getFile(), ffe.getSearchPaths());
KarateSession session = service.createSession("dev", ffe.getFile(), ffe.getSearchPaths());
setResponsePage(new FeaturePage(session.getId()));
}
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
<wicket:panel>
<div class="kt-feature-header alert alert-info form-inline">
<div class="form-group">
<span class="label label-default" wicket:id="feature"></span>
</div>
<div class="form-group">
<label>env</label>
<span wicket:id="env" class="btn btn-xs btn-default inline-edit"></span>
</div>
</div>
<div wicket:id="sections">
<div wicket:id="section"></div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,34 +23,65 @@
*/
package com.intuit.karate.web.wicket;

import com.intuit.karate.ScriptEnv;
import com.intuit.karate.cucumber.FeatureSection;
import com.intuit.karate.cucumber.FeatureWrapper;
import com.intuit.karate.web.service.KarateService;
import com.intuit.karate.web.wicket.model.FeatureModel;
import com.intuit.karate.web.wicket.model.FeatureSectionModel;
import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.spring.injection.annot.SpringBean;

/**
*
* @author pthomas3
*/
public class FeaturePanel extends Panel {

public class FeaturePanel extends Panel {

@SpringBean(required = true)
private KarateService service;

public FeaturePanel(String id, String sessionId) {
super(id);
FeatureModel model = new FeatureModel(sessionId);
setDefaultModel(new CompoundPropertyModel(model));
add(new Label("feature", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return model.getObject().getEnv().featureName;
}
}));
add(new AjaxEditableLabel("env", new IModel<String>() {
@Override
public String getObject() {
return model.getObject().getEnv().env;
}

@Override
public void setObject(String object) {
service.updateSessionEnv(sessionId, object);
}

@Override
public void detach() {
}
}));
ListView<FeatureSection> listView = new ListView<FeatureSection>("sections") {
@Override
protected void populateItem(ListItem<FeatureSection> li) {
FeatureSection section = li.getModelObject();
FeatureSectionModel sectionModel = new FeatureSectionModel(sessionId, section);
li.add(new FeatureSectionPanel("section", sectionModel));
}
}
};
add(listView);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@
" </div>"+
" <div id='"+dwdhid+
"' style='padding: 0.2em; background-color: gray; color: white; padding-left: 1em; margin-right: 14em; cursor: move;'>"+
" Karate Ajax Debug Window (drag me here)"+
" Karate Log"+
" </div>"+
" <div id='"+self.debugWindowLogId+"' style='width: 100%; height: 200px; background-color: white; color: black; overflow: auto; white-space: nowrap; text-align:left;'>"+
" </div>"+
Expand All @@ -154,7 +154,7 @@

html += "<a id='"+self.karateDebugLink+"' style='position:fixed; left: 10px; bottom: 10px; z-index:1100000; padding-top: 0.3em; padding-bottom: 0.3em; line-height: normal ; _padding-top: 0em; width: 12em; border: 1px solid black; background-color: white; text-align: center; opacity: 0.7; color: blue;'";

html += " href='javascript:Karate.Ajax.DebugWindow.showDebugWindow()'>KARATE LOG</a>";
html += " href='javascript:Karate.Ajax.DebugWindow.showDebugWindow()'>Karate Log</a>";

jQuery(html).appendTo(document.body);
Wicket.$(self.debugWindowScrollLockLinkId).focusSet = true;
Expand Down
2 changes: 2 additions & 0 deletions karate-web/src/main/webapp/karate.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
margin-left: -15px;
}
.kt-leftnav > div { height: 100%; }
.kt-feature-header { padding: 0.2em 0.5em; margin: 0.5em 0; }
.kt-feature-header .form-group { vertical-align: top; }
.kt-section-header { margin-top: 0.5em; margin-bottom: 0.5em; text-align: right; }
.kt-section { border-top: #337ab7 solid thin; }
.kt-step { border: #337ab7 solid thin; padding: 0; border-top: none; line-height: 1; font-size: small; }
Expand Down

0 comments on commit d1f0a90

Please sign in to comment.