Skip to content

Commit 17effd5

Browse files
committed
Merge branch 'development'
2 parents b84aaf7 + 8ca6fb8 commit 17effd5

File tree

11 files changed

+134
-79
lines changed

11 files changed

+134
-79
lines changed

.github/workflows/pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
runs-on: ubuntu-20.04
2323
steps:
2424
- name: Checkout Repository
25-
uses: actions/checkout@v3
25+
uses: actions/checkout@v4
2626

2727
- uses: Ortus-Solutions/[email protected]
2828
with:

.github/workflows/release.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
runs-on: ubuntu-20.04
3030
steps:
3131
- name: Checkout Repository
32-
uses: actions/checkout@v3
32+
uses: actions/checkout@v4
3333

3434
- name: Setup CommandBox
3535
uses: Ortus-Solutions/[email protected]
@@ -64,7 +64,7 @@ jobs:
6464
box task run taskfile=build/Build target=run :version=${{ env.VERSION }} :projectName=${{ env.MODULE_ID }} :buildID=${{ github.run_number }} :branch=${{ env.BRANCH }}
6565
6666
- name: Commit Changelog To Master
67-
uses: EndBug/[email protected].1
67+
uses: EndBug/[email protected].3
6868
if: env.SNAPSHOT == 'false'
6969
with:
7070
author_name: Github Actions
@@ -73,7 +73,7 @@ jobs:
7373
add: changelog.md
7474

7575
- name: Tag Version
76-
uses: rickstaa/action-create-tag@v1.6.1
76+
uses: rickstaa/action-create-tag@v1.7.2
7777
if: env.SNAPSHOT == 'false'
7878
with:
7979
tag: "v${{ env.VERSION }}"
@@ -82,7 +82,7 @@ jobs:
8282

8383
- name: Upload Build Artifacts
8484
if: success()
85-
uses: actions/upload-artifact@v3
85+
uses: actions/upload-artifact@v4
8686
with:
8787
name: ${{ env.MODULE_ID }}
8888
path: |
@@ -118,7 +118,7 @@ jobs:
118118
box forgebox publish --force
119119
120120
- name: Create Github Release
121-
uses: taiki-e/create-gh-release-action@v1.6.2
121+
uses: taiki-e/create-gh-release-action@v1.8.0
122122
continue-on-error: true
123123
if: env.SNAPSHOT == 'false'
124124
with:
@@ -138,7 +138,7 @@ jobs:
138138
steps:
139139
# Checkout development
140140
- name: Checkout Repository
141-
uses: actions/checkout@v3
141+
uses: actions/checkout@v4
142142
with:
143143
ref: development
144144

@@ -148,7 +148,7 @@ jobs:
148148
forgeboxAPIKey: ${{ secrets.FORGEBOX_TOKEN }}
149149

150150
- name: Download build artifacts
151-
uses: actions/download-artifact@v2
151+
uses: actions/download-artifact@v4
152152
with:
153153
name: ${{ env.MODULE_ID }}
154154
path: .tmp
@@ -165,7 +165,7 @@ jobs:
165165
166166
# Commit it back to development
167167
- name: Commit Version Bump
168-
uses: EndBug/[email protected].1
168+
uses: EndBug/[email protected].3
169169
with:
170170
author_name: Github Actions
171171
author_email: [email protected]

.github/workflows/snapshot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
name: Code Auto-Formatting
2121
runs-on: ubuntu-20.04
2222
steps:
23-
- uses: actions/checkout@v3
23+
- uses: actions/checkout@v4
2424

2525
- name: Auto-format
2626
uses: Ortus-Solutions/[email protected]

.github/workflows/tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ jobs:
3737
experimental: true
3838
steps:
3939
- name: Checkout Repository
40-
uses: actions/checkout@v3
40+
uses: actions/checkout@v4
4141

4242

4343
- name: Setup Java
44-
uses: actions/setup-java@v3
44+
uses: actions/setup-java@v4
4545
with:
4646
distribution: "temurin"
4747
java-version: "11"
@@ -96,7 +96,7 @@ jobs:
9696

9797
- name: Upload Test Results to Artifacts
9898
if: always()
99-
uses: actions/upload-artifact@v3
99+
uses: actions/upload-artifact@v4
100100
with:
101101
name: test-results-${{ matrix.cfengine }}-${{ matrix.coldboxVersion }}
102102
path: |
@@ -109,7 +109,7 @@ jobs:
109109
110110
- name: Upload Debug Logs To Artifacts
111111
if: ${{ failure() }}
112-
uses: actions/upload-artifact@v3
112+
uses: actions/upload-artifact@v4
113113
with:
114114
name: Failure Debugging Info - ${{ matrix.cfengine }} - ${{ matrix.coldboxVersion }}
115115
path: |

.markdownlint.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"no-multiple-blanks": {
99
"maximum": 2
1010
},
11+
"no-duplicate-heading" : false,
1112
"no-duplicate-header" : {
1213
"siblings_only" : true
1314
},

box.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,15 @@
5252
"start:lucee":"server start [email protected]",
5353
"start:2018":"server start [email protected]",
5454
"start:2021":"server start [email protected]",
55+
"start:2023":"server start [email protected]",
5556
"stop:lucee":"server stop [email protected]",
5657
"stop:2018":"server stop [email protected]",
5758
"stop:2021":"server stop [email protected]",
59+
"stop:2023":"server stop [email protected]",
5860
"logs:lucee":"server log [email protected] --follow",
5961
"logs:2018":"server log [email protected] --follow",
60-
"logs:2021":"server log [email protected] --follow"
62+
"logs:2021":"server log [email protected] --follow",
63+
"logs:2023":"server log [email protected] --follow"
6164
},
6265
"installPaths":{
6366
"jwt-cfml":"modules/jwtcfml/",

changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313

1414
### Fixed
1515

16+
- Markdown rules updated to fix duplicate headers
17+
- Updated security logs columns to work in Oracle as `clob`
1618
- `cbsecurity_logs` is hard coded instead of using module setting
1719

1820
## [3.4.1] - 2023-08-09

interceptors/Security.cfc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -754,9 +754,9 @@ component accessors="true" extends="coldbox.system.Interceptor" {
754754
case "block": {
755755
arguments.event
756756
.renderData(
757-
data = "<h1>Unathorized</h1>",
757+
data = "<h1>Unauthorized</h1>",
758758
statusCode = "401",
759-
statusText = "Unathorized"
759+
statusText = "Unauthorized"
760760
)
761761
.noExecution();
762762
break;

models/util/DBLogger.cfc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ component accessors="true" singleton threadsafe {
459459
return "TEXT";
460460
}
461461
case "Oracle": {
462-
return "LONGTEXT";
462+
return "CLOB";
463463
}
464464
default: {
465465
return "TEXT";

test-harness/tests/index.cfm

Lines changed: 109 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,48 @@
1-
<cfsetting showdebugoutput="false" >
2-
<!--- CPU Integration --->
3-
<cfparam name="url.cpu" default="false">
4-
<!--- SETUP THE ROOTS OF THE BROWSER RIGHT HERE --->
5-
<cfset rootMapping = "/tests/specs">
6-
<cfif directoryExists( rootMapping )>
7-
<cfset rootPath = rootMapping>
8-
<cfelse>
9-
<cfset rootPath = expandPath( rootMapping )>
10-
</cfif>
11-
12-
<!--- param incoming --->
13-
<cfparam name="url.path" default="/">
14-
15-
<!--- Decodes & Path Defaults --->
16-
<cfif !len( url.path )>
17-
<cfset url.path = "/">
18-
</cfif>
19-
20-
<!--- Prepare TestBox --->
21-
<cfset testbox = new testbox.system.TestBox()>
22-
23-
<!--- Run Tests Action?--->
24-
<cfif structKeyExists( url, "action")>
25-
<cfif directoryExists( expandPath( rootMapping & url.path ) )>
26-
<cfoutput>#testbox.init( directory=rootMapping & url.path ).run()#</cfoutput>
27-
<cfelse>
28-
<cfoutput><h2>Invalid incoming directory: #rootMapping & url.path#</h2></cfoutput>
29-
</cfif>
30-
<cfabort>
31-
32-
</cfif>
33-
34-
<!--- Get list of files --->
35-
<cfdirectory action="list" directory="#rootPath & url.path#" name="qResults" sort="directory asc, name asc">
36-
<!--- Get the execute path --->
37-
<cfset executePath = rootMapping & ( url.path eq "/" ? "/" : url.path & "/" )>
38-
<!--- Get the Back Path --->
39-
<cfif url.path neq "/">
40-
<cfset backPath = replacenocase( url.path, listLast( url.path, "/" ), "" )>
41-
<cfset backPath = reReplace( backpath, "/$", "" )>
42-
</cfif>
43-
44-
<cfset ASSETS_DIR = expandPath( "/testbox/system/reports/assets" )>
45-
<!--- Do HTML --->
1+
<cfscript>
2+
// No cf debugging
3+
cfsetting( showdebugoutput="false" );
4+
// Path Navigation
5+
param name="url.path" default="";
6+
// Root Tests Directory
7+
rootMapping = "/tests/specs";
8+
rootPath = expandPath( rootMapping );
9+
targetPath = rootPath;
10+
// Append navigation path
11+
if( len( url.path ) ){
12+
targetPath = getCanonicalPath( rootpath & "/" & url.path );
13+
// Avoid traversals
14+
if( !findNoCase( rootpath, targetPath ) ){
15+
targetPath = rootpath;
16+
}
17+
}
18+
// Get the actual execution path
19+
executePath = rootMapping & ( len( url.path ) ? "/#url.path#" : "/" );
20+
// Directory Runner
21+
if( !isNull( url.action ) ){
22+
if( directoryExists( targetPath ) ){
23+
writeOutput( "#new testbox.system.TestBox( directory=executePath ).run()#" );
24+
} else {
25+
writeOutput( "<h2>Invalid Directory: #encodeForHTML( targetPath )#</h2>" );
26+
}
27+
abort;
28+
}
29+
// Get target path listing
30+
qResults = directoryList( targetPath, false, "query", "", "name" );
31+
// Get the back path
32+
if( len( url.path ) ){
33+
backPath = url.path.listToArray( "/\" );
34+
backPath.pop();
35+
backPath = backPath.toList( "/" );
36+
}
37+
// TestBox Assets
38+
ASSETS_DIR = expandPath( "/testbox/system/reports/assets" );
39+
TESTBOX_VERSION = new testBox.system.TestBox().getVersion();
40+
</cfscript>
4641
<!DOCTYPE html>
4742
<html>
4843
<head>
4944
<meta charset="utf-8">
50-
<meta name="generator" content="TestBox v#testbox.getVersion()#">
45+
<meta name="generator" content="TestBox v#TESTBOX_VERSION#">
5146
<title>TestBox Browser</title>
5247
<cfoutput>
5348
<style>#fileRead( '#ASSETS_DIR#/css/main.css' )#</style>
@@ -56,51 +51,105 @@
5651
<script>#fileRead( '#ASSETS_DIR#/js/bootstrap.min.js' )#</script>
5752
<script>#fileRead( '#ASSETS_DIR#/js/stupidtable.min.js' )#</script>
5853
</cfoutput>
59-
6054
</head>
6155
<cfoutput>
6256
<body>
6357
64-
<!--- Title --->
6558
<div id="tb-runner" class="container">
59+
60+
<!--- Header --->
6661
<div class="row">
6762
<div class="col-md-4 text-center mx-auto">
6863
<img class="mt-3" src="http://www.ortussolutions.com/__media/testbox-185.png" alt="TestBox" id="tb-logo"/>
6964
<br>
70-
v#testbox.getVersion()#
65+
v#TESTBOX_VERSION#
7166
<br>
72-
<a href="index.cfm?action=runTestBox&path=#URLEncodedFormat( url.path )#" target="_blank"><button class="btn btn-primary btn-sm my-1" type="button">Run All</button></a>
67+
<a
68+
href="index.cfm?action=runTestBox&path=#URLEncodedFormat( url.path )#"
69+
target="_blank"
70+
>
71+
<button
72+
class="btn btn-primary btn-sm my-1"
73+
type="button">
74+
Run All
75+
</button>
76+
</a>
7377
</div>
7478
</div>
79+
80+
<!--- Runners --->
81+
<div class="row">
82+
<div class="col-md-12 mb-4">
83+
<h2>Availble Test Runners: </h2>
84+
<p>
85+
Below is a listing of the runners matching the "runner*.cfm" pattern.
86+
</p>
87+
88+
<cfset runners = directoryList( expandPath( "./" ), false, "query", "runner*.cfm" )>
89+
<cfoutput query="runners">
90+
<a href="#runners.name#" target="_blank" class="btn btn-secondary btn-sm my-1 mx-1">#runners.name#</a>
91+
</cfoutput>
92+
</div>
93+
</div>
94+
95+
<!--- Listing --->
7596
<div class="row">
7697
<div class="col-md-12">
7798
<form name="runnerForm" id="runnerForm">
7899
<input type="hidden" name="opt_run" id="opt_run" value="true">
79100
<h2>TestBox Test Browser: </h2>
80101
<p>
81-
Below is a listing of the files and folders starting from your root <code>#rootPath#</code>. You can click on individual tests in order to execute them
102+
Below is a listing of the files and folders starting from your root <code>#rootMapping#</code>. You can click on individual tests in order to execute them
82103
or click on the <strong>Run All</strong> button on your left and it will execute a directory runner from the visible folder.
83104
</p>
84105
85106
<fieldset>
86-
<legend>Contents: #executePath#</legend>
87-
<cfif url.path neq "/">
88-
<a href="index.cfm?path=#URLEncodedFormat( backPath )#"><button type="button" class="btn btn-secondary btn-sm my-1">« Back</button></a><br><hr>
107+
<legend>#targetPath.replace( rootPath, "" )#</legend>
108+
109+
<!--- Show Back If we are traversing --->
110+
<cfif len( url.path )>
111+
<a href="index.cfm?path=#URLEncodedFormat( backPath )#">
112+
<button type="button" class="btn btn-secondary btn-sm my-1">&##xAB; Back</button>
113+
</a>
114+
<br>
115+
<hr>
89116
</cfif>
117+
90118
<cfloop query="qResults">
119+
<!--- Skip . folder file names --->
91120
<cfif refind( "^\.", qResults.name )>
92121
<cfcontinue>
93122
</cfif>
94123
95-
<cfset dirPath = URLEncodedFormat( ( url.path neq '/' ? '#url.path#/' : '/' ) & qResults.name )>
96124
<cfif qResults.type eq "Dir">
97-
<a class="btn btn-secondary btn-sm my-1" href="index.cfm?path=#dirPath#">✚ #qResults.name#</a><br/>
125+
<a
126+
class="btn btn-secondary btn-sm my-1"
127+
href="index.cfm?path=#urlEncodedFormat( url.path & "/" & qResults.name )#"
128+
>
129+
&##x271A; #qResults.name#
130+
</a>
131+
<br />
98132
<cfelseif listLast( qresults.name, ".") eq "cfm">
99-
<a class="btn btn-primary btn-sm my-1" href="#executePath & qResults.name#" <cfif !url.cpu>target="_blank"</cfif>>#qResults.name#</a><br/>
133+
<a
134+
class="btn btn-primary btn-sm my-1"
135+
href="#executePath & "/" & qResults.name#"
136+
target="_blank"
137+
>
138+
#qResults.name#
139+
</a>
140+
<br />
100141
<cfelseif listLast( qresults.name, ".") eq "cfc" and qresults.name neq "Application.cfc">
101-
<a class="btn btn-primary btn-sm my-1" href="#executePath & qResults.name#?method=runRemote" <cfif !url.cpu>target="_blank"</cfif>>#qResults.name#</a><br/>
142+
<a
143+
class="btn btn-primary btn-sm my-1"
144+
href="#executePath & "/" & qResults.name#?method=runRemote"
145+
target="_blank"
146+
>
147+
#qResults.name#
148+
</a>
149+
<br />
102150
<cfelse>
103-
#qResults.name#<br/>
151+
#qResults.name#
152+
<br/>
104153
</cfif>
105154
106155
</cfloop>
@@ -112,4 +161,4 @@
112161
113162
</body>
114163
</html>
115-
</cfoutput>
164+
</cfoutput>

0 commit comments

Comments
 (0)