Skip to content

Commit 74850ec

Browse files
authored
chore: remove rate limit file and preparing for release (#105)
1 parent b3983b7 commit 74850ec

File tree

2,115 files changed

+376686
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,115 files changed

+376686
-2
lines changed

.plan/I18N_INTEGRATION_TEST_PLAN.md

Lines changed: 407 additions & 0 deletions
Large diffs are not rendered by default.

.plan/INSTALLATION_TESTING_PLAN.md

Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
# Installation Testing Plan
2+
3+
This document outlines the testing procedures for verifying the Blogware/Scriptlog installation system works correctly with multi-language support.
4+
5+
## Test Environment
6+
7+
- **PHP Version**: 7.4+ (recommended 8.0+)
8+
- **Database**: MySQL 5.7+ or MariaDB 10.2+
9+
- **Web Server**: Apache/Nginx
10+
- **Test Domain**: http://blogware.site (or local equivalent)
11+
12+
---
13+
14+
## Pre-Installation Checklist
15+
16+
Before running tests, ensure:
17+
18+
- [ ] Web server is running and pointing to `/var/www/blogware/public_html`
19+
- [ ] Database server is running with MySQL/MariaDB
20+
- [ ] PHP extensions installed: `pdo`, `pdo_mysql`, `mbstring`, `xml`, `curl`, `gd`
21+
- [ ] Write permissions on `public/files/`, `public/cache/`, `public/log/`
22+
- [ ] Clean database (drop existing tables if any)
23+
24+
---
25+
26+
## Test Cases
27+
28+
### Test 1: Fresh Installation - English (Default)
29+
30+
**Objective**: Verify clean installation works with default English language
31+
32+
**Steps**:
33+
1. Navigate to `http://blogware.site/install/`
34+
2. Select "English" from language dropdown
35+
3. Click "Continue" through system requirements
36+
4. Fill in database credentials (host, user, password, database name)
37+
5. Fill in admin account details (username, email, password)
38+
6. Complete installation
39+
7. Verify redirect to admin login
40+
41+
**Expected Results**:
42+
- Installation completes without errors
43+
- Admin user created in `tbl_users`
44+
- Default language (English) set in `tbl_languages` and `tbl_settings`
45+
- 41 translation keys populated in `tbl_translations`
46+
47+
**Verification Queries**:
48+
```sql
49+
SELECT * FROM tbl_users WHERE user_login = 'administrator';
50+
SELECT * FROM tbl_languages WHERE lang_is_default = 1;
51+
SELECT COUNT(*) AS translation_count FROM tbl_translations;
52+
```
53+
54+
---
55+
56+
### Test 2: Fresh Installation - Chinese
57+
58+
**Objective**: Verify installation works with Chinese language
59+
60+
**Steps**:
61+
1. Navigate to `http://blogware.site/install/`
62+
2. Select "中文 (Chinese)" from language dropdown
63+
3. Complete installation with Chinese selected
64+
4. Verify admin panel displays in Chinese after login
65+
66+
**Expected Results**:
67+
- Installation completes successfully
68+
- Default language set to Chinese in database
69+
- All UI text appears in Chinese
70+
71+
---
72+
73+
### Test 3: Fresh Installation - Arabic (RTL)
74+
75+
**Objective**: Verify installation works with Arabic (RTL language)
76+
77+
**Steps**:
78+
1. Navigate to `http://blogware.site/install/`
79+
2. Select "العربية (Arabic)" from language dropdown
80+
3. Complete installation
81+
4. Verify RTL layout is applied in admin panel
82+
83+
**Expected Results**:
84+
- Installation completes successfully
85+
- RTL direction set in `tbl_languages`
86+
- Admin panel displays right-to-left
87+
88+
**Verification Query**:
89+
```sql
90+
SELECT lang_direction FROM tbl_languages WHERE lang_code = 'ar';
91+
```
92+
93+
---
94+
95+
### Test 4: Fresh Installation - French
96+
97+
**Objective**: Verify installation works with French language
98+
99+
**Steps**:
100+
1. Navigate to `http://blogware.site/install/`
101+
2. Select "Français (French)" from language dropdown
102+
3. Complete installation
103+
4. Verify French translations are applied
104+
105+
**Expected Results**:
106+
- Installation completes successfully
107+
- French set as default language
108+
109+
---
110+
111+
### Test 5: System Requirements Check
112+
113+
**Objective**: Verify system requirements page displays correctly
114+
115+
**Steps**:
116+
1. Navigate to `http://blogware.site/install/`
117+
2. Observe system requirements check on first page
118+
119+
**Expected Results**:
120+
- All required PHP extensions detected
121+
- Directory permissions validated
122+
- Pass/Fail indicators for each requirement
123+
124+
---
125+
126+
### Test 6: Database Connection Validation
127+
128+
**Objective**: Verify installer validates database connection
129+
130+
**Steps**:
131+
1. Start installation
132+
2. Enter incorrect database credentials
133+
3. Submit form
134+
135+
**Expected Results**:
136+
- Error message displayed: "Cannot connect to database"
137+
- User can correct credentials and retry
138+
139+
---
140+
141+
### Test 7: Admin Account Security
142+
143+
**Objective**: Verify admin password meets security requirements
144+
145+
**Steps**:
146+
1. During installation, enter weak password (e.g., "123")
147+
2. Submit form
148+
149+
**Expected Results**:
150+
- Validation error prevents submission
151+
- Message indicates minimum password strength required
152+
153+
---
154+
155+
### Test 8: Translation Cache Generation
156+
157+
**Objective**: Verify translation cache is generated after installation
158+
159+
**Steps**:
160+
1. Complete installation with any language
161+
2. Check `public/files/cache/translations/` directory
162+
163+
**Expected Results**:
164+
- JSON cache file created (e.g., `en.json`)
165+
- Contains all 41 translation keys
166+
167+
**Verification**:
168+
```bash
169+
ls -la public/files/cache/translations/
170+
cat public/files/cache/translations/en.json
171+
```
172+
173+
---
174+
175+
## Manual Testing Checklist
176+
177+
After successful installation, verify the following:
178+
179+
### Admin Panel
180+
- [ ] Login at `admin/index.php` with credentials (administrator / 4dMin(*)^)
181+
- [ ] Dashboard loads without PHP errors
182+
- [ ] All admin menu items accessible
183+
- [ ] Language switcher works in settings
184+
185+
### Frontend
186+
- [ ] Homepage loads at `/`
187+
- [ ] Blog posts display correctly
188+
- [ ] Theme assets load (CSS, JS, images)
189+
- [ ] No PHP errors in logs
190+
191+
### Database
192+
- [ ] All 12+ tables created in database
193+
- [ ] Default settings populated in `tbl_settings`
194+
- [ ] Default topic created (if applicable)
195+
196+
---
197+
198+
## Troubleshooting
199+
200+
### Common Issues
201+
202+
| Issue | Solution |
203+
|-------|----------|
204+
| "Headers already sent" | Check for BOM in PHP files; ensure no whitespace before `<?php` |
205+
| Database connection fails | Verify MySQL user has permissions for the database |
206+
| 403 Forbidden | Check file permissions (755 for dirs, 644 for files) |
207+
| Translation cache not generated | Ensure `public/files/cache/translations/` is writable |
208+
209+
### Logs
210+
211+
Check these locations for errors:
212+
- `public/log/` - Application logs
213+
- PHP error log (check `php.ini` for path)
214+
215+
---
216+
217+
## Automated Testing (Optional)
218+
219+
Create `tests/integration/InstallationTest.php` for automated verification:
220+
221+
```php
222+
<?php
223+
class InstallationTest extends PHPUnit_Framework_TestCase
224+
{
225+
public function testDatabaseConnection()
226+
{
227+
// Test PDO connection
228+
}
229+
230+
public function testTranslationKeysExist()
231+
{
232+
// Verify all 41 keys present
233+
}
234+
235+
public function testDefaultLanguage()
236+
{
237+
// Verify default language set correctly
238+
}
239+
}
240+
```
241+
242+
---
243+
244+
## Reporting
245+
246+
After testing, document:
247+
248+
1. **Test Results**: Pass/Fail for each test case
249+
2. **Environment**: PHP version, database version, OS
250+
3. **Issues Found**: Any errors or unexpected behavior
251+
4. **Recommendations**: Suggested improvements
252+
253+
---
254+
255+
## Contact
256+
257+
For issues or questions about the installation process:
258+
- Check `docs/DEVELOPER_GUIDE.md` for development patterns
259+
- Review `AGENTS.md` for working guidelines

0 commit comments

Comments
 (0)