summaryrefslogtreecommitdiffstats
path: root/modules/repository/generate_test.go
blob: 1cb9a50f6731abb0605b8a8208b7e972744b2fb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Copyright 2019 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package repository

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

var giteaTemplate = []byte(`
# Header

# All .go files
**.go

# All text files in /text/
text/*.txt

# All files in modules folders
**/modules/*
`)

func TestGiteaTemplate(t *testing.T) {
	gt := GiteaTemplate{Content: giteaTemplate}
	assert.Len(t, gt.Globs(), 3)

	tt := []struct {
		Path  string
		Match bool
	}{
		{Path: "main.go", Match: true},
		{Path: "a/b/c/d/e.go", Match: true},
		{Path: "main.txt", Match: false},
		{Path: "a/b.txt", Match: false},
		{Path: "text/a.txt", Match: true},
		{Path: "text/b.txt", Match: true},
		{Path: "text/c.json", Match: false},
		{Path: "a/b/c/modules/README.md", Match: true},
		{Path: "a/b/c/modules/d/README.md", Match: false},
	}

	for _, tc := range tt {
		t.Run(tc.Path, func(t *testing.T) {
			match := false
			for _, g := range gt.Globs() {
				if g.Match(tc.Path) {
					match = true
					break
				}
			}
			assert.Equal(t, tc.Match, match)
		})
	}
}
ort/45765/stable30'>backport/45765/stable30 Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/apps/workflowengine/src/components/Checks/request.js
blob: 3bbf464adb59a939b7d0a6289249efc181cbdf95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
 * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

import RequestUserAgent from './RequestUserAgent.vue'
import RequestTime from './RequestTime.vue'
import RequestURL from './RequestURL.vue'
import RequestUserGroup from './RequestUserGroup.vue'

const RequestChecks = [
	{
		class: 'OCA\\WorkflowEngine\\Check\\RequestURL',
		name: t('workflowengine', 'Request URL'),
		operators: [
			{ operator: 'is', name: t('workflowengine', 'is') },
			{ operator: '!is', name: t('workflowengine', 'is not') },
			{ operator: 'matches', name: t('workflowengine', 'matches') },
			{ operator: '!matches', name: t('workflowengine', 'does not match') },
		],
		component: RequestURL,
	},
	{
		class: 'OCA\\WorkflowEngine\\Check\\RequestTime',
		name: t('workflowengine', 'Request time'),
		operators: [
			{ operator: 'in', name: t('workflowengine', 'between') },
			{ operator: '!in', name: t('workflowengine', 'not between') },
		],
		component: RequestTime,
	},
	{
		class: 'OCA\\WorkflowEngine\\Check\\RequestUserAgent',
		name: t('workflowengine', 'Request user agent'),
		operators: [
			{ operator: 'is', name: t('workflowengine', 'is') },
			{ operator: '!is', name: t('workflowengine', 'is not') },
			{ operator: 'matches', name: t('workflowengine', 'matches') },
			{ operator: '!matches', name: t('workflowengine', 'does not match') },
		],
		component: RequestUserAgent,
	},
	{
		class: 'OCA\\WorkflowEngine\\Check\\UserGroupMembership',
		name: t('workflowengine', 'Group membership'),
		operators: [
			{ operator: 'is', name: t('workflowengine', 'is member of') },
			{ operator: '!is', name: t('workflowengine', 'is not member of') },
		],
		component: RequestUserGroup,
	},
]

export default RequestChecks